Comptage du nombre de lignes d'une feuille dans macro

Lukatha Messages postés 3 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 décembre 2007 - 29 nov. 2007 à 22:18
cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010 - 30 nov. 2007 à 15:23
Bonjour,

   Je souhaite créer une macro Excel pour copier les données de 3 onglets dans un seul onglet "Data". Les onglets ont tous les même formats mais le nombre de ligne change. Comment copier les données de l'onglet 1 (N lignes) dans mon onglet, puis celles de mon onglet 2 à la suite donc à la ligne N+1 ? En effet je n'arrive pas à trouver la fonction pour compter le nombre de lignes de données d'un onglet.
  Actuellement ma seule solution est de créer un nouvel onglet dans lequel une des cellules calcule le nombre de valeur par la fonction NBVAL et récupérer cette donnée dans la macro, mais cela est trop lourd à gérer (création d'un onglet supplémentaire..)

Ci-joint actuellement ma macro, qui ne fonctionne pas... :
Sub data()
'création du fichier data
Dim i As Integer
Dim j As Integer
Dim n As Integer
Dim p As Object
Dim Onglet As Variant


n = 2
For i = 1 To n
'sélection de l'onglet à copier
Onglet = "Feuil1 (" & i + 1 & ")"
Sheets(Onglet).Select
'compte le nombre de ligne sur cette feuille
j = Sheets(Onglet).UsedRange.Rows.Count 
'copie des données à l'endroit souhaité
    Range("A2:AF" & j).Select
    Selection.Copy
    Sheets("data (2)").Select
    Range("C" & n).Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    n = n + j
Next i
End Sub 

Merci pour toute l'aide que vous pourrez m'apporter

1 réponse

cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010
30 nov. 2007 à 15:23
Bonjour à tous
Bonjour  Lukatla

Cette ligne de code te donne la 1ère ligne vide en colonne A :

lignevide = Worksheets("Feuil1").Range("A65536").End(xlUp).Row + 1

Frédéric
0
Rejoignez-nous