Signaler

Collage spécial dans la première ligne vide d'une autre feuille [Résolu]

Posez votre question julien paget - Dernière réponse le 17 févr. 2017 à 12:01 par 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...



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.
Afficher la suite 
Utile
+0
moins plus
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
Donnez votre avis
Utile
+0
moins plus
Bonjour,

J'ai testé ton code et c'est pas vraiment ce dont j'ai besoin.

En fait je voudrais qu'à chaque que je clique sur le bouton "Archivage", le sélection "B3:E22" de la page "Listing" vienne s’incrémenter a la suite de l'existant dans la feuille "Archivage".

du coup la première fois ça concerne les lignes 1 à 20 puis la seconde fois les ligne 21 à 40 et ainsi de suite .

je crois que je vais abandonner....
j'en peux plus des Range Select etc etc
pijaku 12158Messages postés jeudi 15 mai 2008Date d'inscription ModérateurStatut 17 février 2017 Dernière intervention - 17 févr. 2017 à 11:46
Bonjour,

'ai testé ton code et c'est pas vraiment ce dont j'ai besoin.

En fait je voudrais qu'à chaque que je clique sur le bouton "Archivage", le sélection "B3:E22" de la page "Listing" vienne s’incrémenter a la suite de l'existant dans la feuille "Archivage".

du coup la première fois ça concerne les lignes 1 à 20 puis la seconde fois les ligne 21 à 40 et ainsi de suite .

C'est TRES EXACTEMENT ce que fais ce code :
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
Répondre
Julien paget- 17 févr. 2017 à 11:54
En voyant ta réponse sure de toi je me suis dit que j avais très certainement fait une mauvaise manip.
Du coup j ai inséré un nouveau module
.
Je copie colle le code
Ca fonctionne carrément plus du tout

Message d erreur :
Erreur de compilation
Instruction incorrecte à l'extérieur d une procédure
Je pige plus rien
Répondre
pijaku 12158Messages postés jeudi 15 mai 2008Date d'inscription ModérateurStatut 17 février 2017 Dernière intervention - 17 févr. 2017 à 11:59
Private Sub Commandbutton21_Click ()

End sub

Ne te dis rien?
Non?
Un petit effort car ce sera ma dernière réponse...
Répondre
Donnez votre avis
Utile
+0
moins plus
Stop arrêtez tout !!!!
CA MARCHE merci mon bon seigneur!!!
Je vous serai éternellement reconnaissant!!!

Encore merci!
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !