Collage spécial dans la première ligne vide d'une autre feuille
Résolu
julien paget
-
Julien paget -
Julien paget -
Bonjour,
Etant debutant dans le VBA, J hesite entre balancer l ordi par la fenetre ou me prendre avec son chargeur.
Je vous explique.
J ai creer une macro qui copie une selection precise de la feuille 2 pour la copier dans la feuille 4 en lui otant les formules etc. Ca c est bon. Maintenant j aimerais lui faire comprendre qu elle doit coller cette selection dans la ligne vide suivante. A l heure actuelle elle le copie uniquement dans la cellule active.
Comment lui faire comprendre qu elle doit copier dans la ligne vide du tableau de destination.
Voilà le code de ma macro.
Ou rajouter la selection de ligne vide du tableau et surtout quel est le code pour cette operation...
Etant debutant dans le VBA, J hesite entre balancer l ordi par la fenetre ou me prendre avec son chargeur.
Je vous explique.
J ai creer une macro qui copie une selection precise de la feuille 2 pour la copier dans la feuille 4 en lui otant les formules etc. Ca c est bon. Maintenant j aimerais lui faire comprendre qu elle doit coller cette selection dans la ligne vide suivante. A l heure actuelle elle le copie uniquement dans la cellule active.
Comment lui faire comprendre qu elle doit copier dans la ligne vide du tableau de destination.
Voilà le code de ma macro.
Ou rajouter la selection de ligne vide du tableau et surtout quel est le code pour cette operation...
Private Sub Commandbutyon21_Click ()
Sheets ("listing").select
Range ("b3:e32").select
Application.CutCooyMode = False
Sélection.Copy
Sheets("Archivage").Select
Sélection.pastespecial Paste=xlPastValues, Operation: =False, Transpose:=False
End sub.
3 réponses
-
Bonjour,
Pour trouver la première ligne vide de la colonne C de la feuille "Archivage" (par exemple) :Dim maLigne As Long With Sheets("Archivage") If .Range("C1") <> "" Then maLigne = .Range("C" & Rows.Count).End(xlUp).Row + 1 Else maLigne = 1 End If End With
Après, pour copier coller, pas besoin de Sélection :Sheets ("listing").select Range ("b3:e32").select Application.CutCooyMode = False Sélection.Copy
S'écrit plus simplement :Sheets("listing").Range("B3:E32").Copy
Ce qui te donne un code du genre :Dim maLigne As Long With Sheets("Archivage") If .Range("A1") <> "" Then maLigne = .Range("A" & Rows.Count).End(xlUp).Row + 1 Else maLigne = 1 End If Sheets("listing").Range("B3:E32").Copy .Range("A" & maLigne).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Transpose:=False End With
PS : évite d'écrire avec des moufles ;-).
Le code donné dans ton message comporte :- des espaces inutiles
- Sheets ("listing")
- Range ("b3:e32")
- Operation: =False
- des accents inutiles : Sélection
- des fautes de frappe :
- pastespecial => manque les majuscules
- Paste=xlPastValues ==> manque les : et un e : Paste:=xlPasteValues
- des espaces inutiles