Coller à la suite

Fermé
ki.net Messages postés 30 Date d'inscription mercredi 6 septembre 2006 Statut Membre Dernière intervention 28 octobre 2008 - 22 août 2008 à 18:58
eriiic Messages postés 24512 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 24 mars 2023 - 23 août 2008 à 19:55
Bonjour,

Je cherche par macro à coller des lignes provenant d'une feuille sur une autre feuille sur la premiere cellule libre.
Macro utilisée :
Sub multiple()

Dim i As Integer
i = 6
Cells(i, 2).Select
While Cells(i, 2).Value <> ""
i = i + 1
Wend

Sheets("Saisie_multiple").Select
Range("A21:M31").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Journal").Select
Range("C5").Select
Cells(i, 3).Select
ActiveSheet.Paste
End Sub
Le premier passage marche au second elle copie sur l'existant.
J'ai certainement fait une erreur mais ou.
Merci d'avance

5 réponses

paolo_en_espagne Messages postés 41 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 21 octobre 2008 12
22 août 2008 à 19:02
Si je ne me trompe pas, au moment où tu lui demande de coller ta sélection, la valeur de i est (la valeur de la dernière cellule non vide +1). le problème est que tu ne fais pas de boucle sur la zone où copier ta sélection donc la valeur de "i" est toujours la même...
1
ki.net Messages postés 30 Date d'inscription mercredi 6 septembre 2006 Statut Membre Dernière intervention 28 octobre 2008
23 août 2008 à 15:04
Bonjour Eric,
Je n'y comprends rien.
J'ai créé deux feuilles saisie et saisie multiple.
Ma macro fonctionne parfaitement sur saisie et vient coller à la suite sur la premiére cellule vide.


Sub ajouter_l1()

Dim i As Integer
i = 6
Cells(i, 2).Select
While Cells(i, 2).Value <> ""
i = i + 1
Wend
Sheets("Journal").Select
Range("C2:O3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Journal").Select
Cells(i, 3).Select
ActiveSheet.Paste
End Sub

Ma colonne 2 n'est pas vide, elle est alimentée par formule par la colonne 3
La valeur 6 correspond à la ligne 6 premiére ligne à remplir.

J'ai écris la même formule pour saisie multiple :

Sub multiple()

Dim i As Integer
i = 6
Cells(i, 2).Select
While Cells(i, 2).Value <> ""
i = i + 1
Wend

Sheets("Saisie_multiple").Select
Range("A21:M31").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Journal").Select
Cells(i, 3).Select
ActiveSheet.Paste
End Sub

Systématiquement le report ce fait sur la cellule C8 ???????

Dans le premier cas je reporte deux lignes dans l'autre 11.

Ou se trouve le bug?
Je n'ai pas encore testé ta formule, car je voudrais bien comprendre.
Merci.
1
eriiic Messages postés 24512 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 24 mars 2023 7 168
23 août 2008 à 19:55
J'insiste mais toi fais un effort...
Tu testes Cells(i, 2) jusqu'à ce qu'elle soit vide.
ensuite tu colles en Cells(i, 3), en quoi cela fait changer ta cellule Cells(i, 2) ????
Au prochain tour i aura toujours la même valeur et tu colleras au même endroit.
eric
1
ki.net Messages postés 30 Date d'inscription mercredi 6 septembre 2006 Statut Membre Dernière intervention 28 octobre 2008
22 août 2008 à 23:02
Bonsoir paolo en espagne
Comment faire cette boucle.
Merci
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24512 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 24 mars 2023 7 168
22 août 2008 à 23:15
Bonsoir,

tu recherches dans la colonne 2 et tu colles dans la 3ème, la 2ème est tjs vide au même endroit...
Sinon tu as plus efficace pour retrouver la dernière ligne saisie.
Pour la colonne B par exemple :
derlig= [B65536].end(xlup).row
et donc faire ton collé sur ligne derlig+1

eric
-1