Renseignement VBA sur excel 2007

Fermé
fabrice76800 Messages postés 1 Date d'inscription vendredi 7 janvier 2011 Statut Membre Dernière intervention 7 janvier 2011 - 7 janv. 2011 à 12:33
cousinhub29 Messages postés 881 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 avril 2024 - 7 janv. 2011 à 15:37
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.


A voir également:

3 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
7 janv. 2011 à 12:37
Bonjour,
Montre déjà le code (ou début de code) que tu a fait pour y arriver .
A+
0
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.
0
cousinhub29 Messages postés 881 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 avril 2024 333
7 janv. 2011 à 12:38
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
0
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.
0
cousinhub29 Messages postés 881 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 avril 2024 333
Modifié par cousinhub29 le 7/01/2011 à 15:37
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?
0