Renseignement VBA sur excel 2007
fabrice76800
Messages postés
1
Statut
Membre
-
cousinhub29 Messages postés 1114 Date d'inscription Statut Membre Dernière intervention -
cousinhub29 Messages postés 1114 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je viens vers vous car là, je seche et ce malgré en essayant d'adpater ce que j'ai pu lire. Ca bug et je n'arrive a rien.
J'ai un classeur comprenant 12 feuilles. "Janvier, février....décembre".
Chaque feuille est identiques et comporte des colonnes avec des données en colonne A,B,C,D (Pas E et F),G, H, I que je souhaiterai renvoyer vers un tableau "Tableau1" reprenant les colonnes A B C D G H I des 12 feuilles du meme classeur. Sachant que les lignes transferées s'incrémentent à la suite de manière croissante.
En espérant avoir été suffisament clair.
Cordialement.
Je viens vers vous car là, je seche et ce malgré en essayant d'adpater ce que j'ai pu lire. Ca bug et je n'arrive a rien.
J'ai un classeur comprenant 12 feuilles. "Janvier, février....décembre".
Chaque feuille est identiques et comporte des colonnes avec des données en colonne A,B,C,D (Pas E et F),G, H, I que je souhaiterai renvoyer vers un tableau "Tableau1" reprenant les colonnes A B C D G H I des 12 feuilles du meme classeur. Sachant que les lignes transferées s'incrémentent à la suite de manière croissante.
En espérant avoir été suffisament clair.
Cordialement.
3 réponses
-
Bonjour,
Montre déjà le code (ou début de code) que tu a fait pour y arriver .
A+-
bonjour,
voici ce que j'ai fait mais je bloque. Le nombre de lignes est de 30 par feuille.
Sub Mise_à_Jour()
Dim CompteurDeFeuille As Byte
Dim Cell As Range
Dim LigneDeDépart As Integer
LigneDeDépart = 2
For CompteurDeFeuille = 1 To Worksheets.Count
If Sheets(CompteurDeFeuille).Name <> "TABLEAU 1" Then
With Sheets(CompteurDeFeuille)
For Each Cell In .Range(("C5:C") & .Range("C65536").End(xlUp).Row)
Range(.Cells(Cell.Row, 2), .Cells(Cell.Row, 8)).Copy (C'est là que je bloque)
Sheets("TABLEAU 1").Cells(LigneDeDépart, 2).PasteSpecial Paste:=xlPasteValues
LigneDeDépart = LigneDeDépart + 1
End If
Next
End With
End If
End Sub
En esperant que cela soit pas trop bete.
Coridlament.
-
-
Bonjour,
Afin de répondre au mieux à ton besoin, il va te falloir être un peu plus explicite....
Est-ce que le nombre de lignes est aléatoire, sur chaque onglet?
Si le nombre est aléatoire, quelle colonne est toujours remplie (par exemple la colonne des dates)?
Est-ce que le nom des onglets respecte bien le nom des mois (avec les é, û (de Août))?
Quel code utilises-tu, et qui bug?
A te relire-
bonjour,
le nombre de lignes est de 30 par feuilles. Oui, oui, il y a les é et û là ou il faut.
ci après, ce que j'ai fait.
Sub Mise_à_Jour()
Dim CompteurDeFeuille As Byte
Dim Cell As Range
Dim LigneDeDépart As Integer
LigneDeDépart = 2
For CompteurDeFeuille = 1 To Worksheets.Count
If Sheets(CompteurDeFeuille).Name <> "TABLEAU 1" Then
With Sheets(CompteurDeFeuille)
For Each Cell In .Range(("C5:C") & .Range("C65536").End(xlUp).Row)
Range(.Cells(Cell.Row, 2), .Cells(Cell.Row, 8)).Copy (C'est là que ça bloque)
Sheets("TABLEAU 1").Cells(LigneDeDépart, 2).PasteSpecial Paste:=xlPasteValues
LigneDeDépart = LigneDeDépart + 1
Next
End With
End Sub
J'aurai bien mis mon fichier mais je ne sais pas comment je dois faire.
Cordialement.
-
-
Re-,
Sans tester, il me semble qu'il te manque un point (.) devant Range, ainsi qu'un End if :
Sub Mise_à_Jour() Dim CompteurDeFeuille As Byte Dim Cell As Range Dim LigneDeDépart As Integer LigneDeDépart = 2 For CompteurDeFeuille = 1 To Worksheets.Count If Sheets(CompteurDeFeuille).Name <> "TABLEAU 1" Then With Sheets(CompteurDeFeuille) For Each Cell In .Range(("C5:C") & .Range("C65536").End(xlUp).Row) .Range(.Cells(Cell.Row, 2), .Cells(Cell.Row, 8)).Copy Sheets("TABLEAU 1").Cells(LigneDeDépart, 2).PasteSpecial Paste:=xlPasteValues LigneDeDépart = LigneDeDépart + 1 Next Cell End If End With End Sub
Peut-être?