VBA Excel Copier/Coller des cellules seulement si non-vides

Fermé
BillRussell Messages postés 7 Date d'inscription vendredi 27 avril 2012 Statut Membre Dernière intervention 17 avril 2015 - 17 avril 2015 à 16:54
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 17 avril 2015 à 19:14
Bonjour à tous,

Je demande votre aide sur un sujet qui peut paraitre basique mais je ne trouve pas sur le forum le code qu'il me faut.

Ma config : Excel 2013

Mon besoin :
Copier une plage de cellule d'une feuille vers une autre récapitulative mais en ne copiant que les cellules avec des valeurs, non vides donc. Là où ca se complique c'est que j'ai besoin de coller donc que les cellules remplies de la feuille "Option 1" dans la feuille "Suivi budget" et coller les valeurs de la feuille "Option 2" juste à la ligne d'après.

   
Sub Test_2()
'Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
    'Copier ligne
     With Sheets("Suivi Budget")
        Sheets("Option 1").Range("A7:A26").Copy_
        Destination = .Cells(.Cells(655636, 8).End(xlUp).Row + 1, 1)
        Application.CutCopyMode = False
     End With  
Loop
End Sub


Pouvez vous me dire ce qui ne va pas dans mon code, car il ne marche pas..
Avez-vous peut-etre une piste pour faire ceci differemment ?

Je vous remercie et n'hésitez pas si vous voulez plus d'informations ou que je fournisse le fichier de test

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
Modifié par ThauTheme le 17/04/2015 à 19:15
Bonjour Bill, bonjour le forum,

Peut-être comme ça :

Sub Test_2()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim DEST As Range 'déclare la variable OS (cellule de DESTination)

Set OS = ActiveCell 'définit l'onglet source OS
Set OD = Sheets("Suivi Budget") 'définit l'onglet destination OD
For Each CEL In OS.Range("A7:A26") 'boule sur toutes les cellues CEL de la plage A7:A26
    If CEL <> "" Then 'condition : si la cellule n'est pa vide
        Set DEST = OD.Cells(Application.Rows.Count, 8).End(xlUp).Offset(1, 0) 'définit la cellue de destination DEST
        CEL.Copy DEST 'copie la celllue CEL dans DEST
    End If 'fin de la condition
Next CEL 'prochaine celllue de la boucle
End Sub


À plus,
ThauTheme
0