[VBA-E] taille du tableau non connu
Bonjour a tous
j'ai encore une question vu que je ne maitrise pas trop vbe
Voila lorsque je copie une feuille sur une autre dont je ne connais pas le nombre de ligne
voici le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Sub essai()
mat = Selection.Rows.Count
J = 1
For i = 1 To mat
Sheets("Feuil1").Select
Rows(J).Select
Selection.Copy
Sheets("Feuil3").Select
Cells(J, 1).Select
ActiveSheet.Paste
J = J + 1
Next i
End Sub |
j'ai un probleme avec selection.rows count
je ne sais pas comment lui dire que le nombre de ligne n'est pas connu
je pense qu'il faut mettre un objet range
merci
Re: taille du tableau non connu
Citation:
Envoyé par fab101
Code:
1 2 3 4 5 6 7 8 9 10
|
For i = 1 To mat
Sheets("Feuil1").Select
Rows(J).Select
Selection.Copy
Sheets("Feuil3").Select
Cells(J, 1).Select
ActiveSheet.Paste
J = J + 1
Next i |
ton code, comme qui dirait m'interpelle dans mon vécu ( :P ).
que veut tu faire exactement.
si je comprend bien ce que je lit, tu selectionne petit à petit chaque ligne(ligne excel) d'un tableau exitant pour les coller une après l'autre a partir du même n° de ligne dans un autre tableau.
Ce serait pas plu simple de carrément copier la plage (range) de ton tableau à copier, et de le coller a partir de la fin de ce que tu as déjà coller sur ta feuille finale (de résultat)?
quant à ta question sur la suite des 2 tableaux.
tu repart sur J donc ta ligen de copy se fait au même numéro don tu risque d'écraser tes données
sur ton principe, je ferait
Citation:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| Sub essai()
mat = Range("A1").CurrentRegion.Rows.Count
J = 1
For i = 1 To mat
Sheets("Feuil1").Select
Rows(J).Select
Selection.Copy
Sheets("Feuil3").Select
Cells(J, 1).Select
ActiveSheet.Paste
J = J + 1
Next i
mat = Range("A1").CurrentRegion.Rows.Count
J = 1
For i = 1 To mat
Sheets("Feuil2").Select
Rows(J).Select
Selection.Copy
Sheets("Feuil3").Select
Cells(J, 1).Select
ActiveSheet.Paste
J = J + 1
Next i
End Sub |
je remplacerait la deuxième partie par
Code:
1 2 3 4 5 6 7 8 9 10 11
| i = 1
For i = 1 To mat
Sheets("Feuil2").Select
Rows(i).Select
Selection.Copy
Sheets("Feuil3").Select
Cells(i+J, 1).Select
ActiveSheet.Paste
i = i + 1
Next i |
tu t'est un peut embrouillé avec les j et i
tu devrait avoir moi de risque mais, bon, je pense que là avec ta méthode c'est un peut "lourde", par les ranges de plage et collage en fin de plage vide sur ta fauille résultat, ça devrait être plus "fin"
Cordialement
XHY65