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

Macros et VBA Excel Discussion :

Copie de cellules sous conditions en boucles [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Points : 18
    Points
    18
    Par défaut Copie de cellules sous conditions en boucles
    Bon, j'ai lu des examples ici et ailleurs, mais je n'arrive pas à faire fonctionner ce que je veux... Je suis débutant, très débutant, pas programmeur du tout.

    voici mon code "de base". Ça fonctionne à merveille pour copier la première ligne de mes données.
    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
    Sub copie_quantité()
    'copier les quantités non nulles en vue de l'impression
     
     '  Do Until Selection.Value = ""
     Dim CQ As Long
     CQ = Worksheets("Nouveau projet").Range("K70").Value
       If CQ <> 0 Then
       Range("J70:L70").Copy
       Range("J11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Selection.Offset(14, 0).Select
     
        Else
        Selection.Offset(1, 0).Select
    'Exit Do
    End If
    il y a des choses que j'ai essayé mais comme je n'arrivais pas à compléter le code correctement je l'ai mis en commentaire.

    Bon, en fait ce que je veux faire précisément:
    - J'ai un tableau des principaux matériaux requis sur un projet, allant de J69 à L77*. Il est possible que le tableau dépasse la ligne 77 dans le futur.
    - je veux vérifier dans chaque ligne de la colonne K (début K70) si la valeur est supérieur à 0.
    - Si oui, copier le range de cette ligne de J à L sur la plage J11.L11, les valeurs uniquement.
    -Je veux que la macro continu la même opération sur les lignes suivantes jusqu'à qu'elle atteigne une cellule Kx vide, et que chaque fois qu'elle rencontre une celle Kx non vide, elle copie la plage Jx.Lx sur Jj.Lj.

    J'ai pris ce code ailleurs que j'ai essayé d'adapter pour mes besoins, mais je n'y arrive pas:
    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
     
    Set i = Sheets("Nouveau projet")
    Dim d
    Dim j
    d = 10
    j = 70
     
    Do Until IsEmpty(i.Range("Q" & j))
     
    If i.Range("K" & j) <> 0 Then
    d = d + 1
    Range("J"&j:"L"&j).Copy¸-->erreur
    'e.Rows(d).Value = i.Rows(j).Value
     
    End If
    j = j + 1
    Loop
    End Sub

    Donc, que dois-je faire?


    *Les titres sont sur la ligne 69.
    J=[Détail des matériaux] K=[Quantité] L=[Quantité approx.]

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonsoir
    En ligne 69 as tu les titres des colonnes J70..L70?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par mercatog Voir le message
    Bonsoir
    En ligne 69 as tu les titres des colonnes J70..L70?
    oui, c'est ça, j'ai mis les titres sur cette ligne
    j'ai édité mon message précédent pour plus de clarté.

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    je propose une méthode avec un filtre automatique
    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
    Sub Macro()
    Dim LastLig As Integer, N As Integer
     
    Application.ScreenUpdating = False
    With Sheets("Nouveau projet")
        .AutoFilterMode = False
        '.Range("J11").CurrentRegion.Clear
        LastLig = .Cells(.Rows.Count, "J").End(xlUp).Row
        .Range("K69:K" & LastLig).AutoFilter Field:=1, Criteria1:="<>0"
        N = .Range("K69:K" & LastLig).SpecialCells(xlCellTypeVisible).Count
        If N > 1 Then
            .Range("J70:L" & LastLig).SpecialCells(xlCellTypeVisible).Copy
            .Range("J11").Resize(N - 1, 3).PasteSpecial Paste:=xlPasteValues
            Application.CutCopyMode = False
        End If
        .AutoFilterMode = False
    End With
    End Sub

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Super, ça fonctionne
    Merci bcp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Copie cellule sous condition d'une feuille sur une autre en VBA
    Par Natchway dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/01/2015, 18h12
  2. Copie cellule sous condition
    Par John Parker dans le forum Excel
    Réponses: 10
    Dernier message: 05/07/2013, 09h18
  3. [XL-2010] boucle copie de plages sous condition
    Par vladouchka dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/04/2011, 11h52
  4. [XL-2003] Copie de cellules sous condition
    Par pheonix00fr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/11/2010, 23h03
  5. [XL-2007] copie de cellules sous conditions
    Par gaauthier dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/09/2010, 12h40

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