IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

extraction d'une cellule de feuil1 et la mettre dans une cellule de feuil2


Sujet :

Excel

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut extraction d'une cellule de feuil1 et la mettre dans une cellule de feuil2
    Bonjour tout le monde,

    j'ai la tache de faire une macro qui permetra d'extraire les valeurs d'une cellule de feuil1 et la mettre dans une cellule de la feuille "liste demande".

    voila le code que j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub testCreation()
    
    Const DistAG2AJ As Long = 3
    Const DistAG2B As Long = -31
    
    Dim cellule As Range
    
    
    Sheets.Add
    ActiveSheet.Name = "Liste des Demandes"
    
    Call ecrire
    
    For Each cellule In Range("AG1:AG" & Range("AG65000").End(xlUp).Row)
    
        If cellule.Value < cellule.Offset(0, DistAG2AJ) Then
        
            cellule.Offset(0, DistAG2B).Font.Color = vbGreen
            
            
        End If
        
    Next
    
    End Sub
    Cette partie de code, créee la feuille ("liste demande") par un appel a une autre procedure, apres elle passe a un traitement sur deux colonnes, si la valeur de la cellule de la colonne AJ est superieur a la valeur de la colonne AG de la meme ligne il colore la valeur de la cellule B, mais cela c'etait juste pour tester si la creation marche,
    là j'ai besoin d'extraire la valeur de la cellule A, B, F, I, AG, AJ où le teste est vrai, et les mettre dans la nouvelle feuille ("liste demande")

    aidez moi svp.
    merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut nsqualli et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(cellule.row,"A").copy sheets("liste demande").cells(cellule.row,"A")
    Là, c'est en considérant que la feuille active est la feuille source, sinon il faut ajouter
    Sheets("feuille de départ").

    Faire de même pour les autres colonnes.
    On considère que la ligne de départ est la même que la ligne d'arrivée.
    Là, on copie la cellule. on peut faire aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("liste demande").cells(cellule.row,"A") = cells(cellule.row,"A")
    Dans ce cas, seule la valeur de la cellule contenue au moment de l'exécution de la macro est copiée.

    Remarques :
    La méthode copy n'admet pas l'offset
    Pour les problèmes de VBA, utilises le forum "Excel VBA", sinon ça sert à quoi que le constructeur du site y se décarcasse ?
    Tu y auras plus de réponses et plus rapidement.
    Quand tu expliques un problème, fais-le en réflèchissant au fait que celui qui va te répondre ne dispose que de ce que tu écris (et éventuellement de sa boule de cristal, mais la mienne est parasité). Ne suppose pas qu'il va deviner, parce que c'est évident : ça ne l'est jamais! Là, ton code me dit qu'avant d'exécuter la macro écrire, la feuille active est la nouvelle feuille. Et après ? elle peut être celle de la source ou celle de la destination, tout dépend de la macro écrire dont on ne connait pas le code.

    A+

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par Gorfael Voir le message
    Salut nsqualli et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(cellule.row,"A").copy sheets("liste demande").cells(cellule.row,"A")
    Là, c'est en considérant que la feuille active est la feuille source, sinon il faut ajouter
    Sheets("feuille de départ").

    Faire de même pour les autres colonnes.
    On considère que la ligne de départ est la même que la ligne d'arrivée.
    Là, on copie la cellule. on peut faire aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("liste demande").cells(cellule.row,"A") = cells(cellule.row,"A")
    Dans ce cas, seule la valeur de la cellule contenue au moment de l'exécution de la macro est copiée.

    Remarques :
    La méthode copy n'admet pas l'offset
    Pour les problèmes de VBA, utilises le forum "Excel VBA", sinon ça sert à quoi que le constructeur du site y se décarcasse ?
    Tu y auras plus de réponses et plus rapidement.
    Quand tu expliques un problème, fais-le en réflèchissant au fait que celui qui va te répondre ne dispose que de ce que tu écris (et éventuellement de sa boule de cristal, mais la mienne est parasité). Ne suppose pas qu'il va deviner, parce que c'est évident : ça ne l'est jamais! Là, ton code me dit qu'avant d'exécuter la macro écrire, la feuille active est la nouvelle feuille. Et après ? elle peut être celle de la source ou celle de la destination, tout dépend de la macro écrire dont on ne connait pas le code.

    A+
    ok mais ça ne me fait que la copie de la premiere ligne de la feuille moi je veux copier les valeurs de la ligne dont AJ > AG

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/05/2013, 17h27
  2. Réponses: 3
    Dernier message: 05/02/2010, 03h45
  3. Réponses: 1
    Dernier message: 26/09/2008, 16h38
  4. Réponses: 3
    Dernier message: 04/07/2008, 12h00
  5. Réponses: 3
    Dernier message: 30/04/2007, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo