A voir également:
- Compiler plusieurs onglets Excel sur un onglet Synthese
- Raccourci rouvrir onglet fermé - Guide
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Word et excel gratuit - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
2 réponses
Bonjour,
Corriges la destination, au lieu de "A1" & x écrire "A" & x
Par exemple, corriges la ligne :
par :
Corriges la destination, au lieu de "A1" & x écrire "A" & x
Par exemple, corriges la ligne :
Sheets("Site de VALENCE").Rows("2:" & x).Copy Sheets("SYNTHESE").Range("A1" & y)
par :
Sheets("Site de VALENCE").Rows("2:" & x).Copy Sheets("SYNTHESE").Range("A" & y)
Bonjour,
Essaies :
Essaies :
Sub test_conso() Dim x As Long, y As Long Sheets("SYNTHESE").Cells.Clear Sheets("IRFSS RA").Cells.Copy Sheets("SYNTHESE").Range("A1") 'pour copier aussi les largeurs de colonne x = Worksheets("Site de LYON").Range("A" & Rows.count).End(xlUp).Row y = Sheets("SYNTHESE").Range("A" & Rows.count).End(xlUp).Row + 1 Sheets("Site de LYON").Rows("2:" & x).Copy Sheets("SYNTHESE").Range("A" & y) x = Worksheets("Site de ST ETIENNE").Range("A" & Rows.count).End(xlUp).Row y = Sheets("SYNTHESE").Range("A" & Rows.count).End(xlUp).Row + 1 Sheets("Site de ST ETIENNE").Rows("2:" & x).Copy Sheets("SYNTHESE").Range("A" & y) x = Worksheets("Site de VALENCE").Range("A" & Rows.count).End(xlUp).Row y = Sheets("SYNTHESE").Range("A" & Rows.count).End(xlUp).Row + 1 Sheets("Site de VALENCE").Rows("2:" & x).Copy Sheets("SYNTHESE").Range("A" & y) End Sub
Après avoir vu les tableaux, la colonne A n'est pas toujours remplie il serait préférable d'utiliser :
Option Explicit Sub test_conso() Dim n°L As Long 'n° ligne destination Dim d°L As Long 'dernière ligne source Dim wsS As Worksheet 'feuille source Dim wsD As Worksheet 'feuille destination Set wsD = Worksheets("SYNTHESE") wsD.Cells.Clear For Each wsS In Worksheets If wsS.Index <> wsD.Index And wsS.Range("C1").Value = "PROCESSUS" Then 'pour chaque feuille concernée (sauf SYNTHESE, Param, liste déroulante, ...) If wsS.Range("B1").Value <> wsD.Range("B1").Value Then 'si synthèse est vierge : copier la 1° feuille avec les titres wsS.Cells.Copy wsD.Range("A1") Else 'sinon : ajouter les données n°L = wsD.Range("B" & Rows.count).End(xlUp).Row + 1 d°L = wsS.Range("B" & Rows.count).End(xlUp).Row wsS.Rows("2:" & d°L).Copy wsD.Range("A" & n°L) End If End If Next wsS End Sub
Oh oui super!!! Cela à l'air de bien fonctionner (même si j'ai l'impression qu'une ou deux lignes sont encore supprimées au moment de la compilation!).
Je vais voir pour mieux compléter toutes les colonnes de mon tableau voir comme la macro se comporte, je ferais des tests aussi quand je rajoute des lignes, voir comment tout cela se met à jour. Je te ferais un retour.
En tout cas mille merci pour ton aide!
Je vais voir pour mieux compléter toutes les colonnes de mon tableau voir comme la macro se comporte, je ferais des tests aussi quand je rajoute des lignes, voir comment tout cela se met à jour. Je te ferais un retour.
En tout cas mille merci pour ton aide!
Merci pour ton conseil. Malheureusement mon problème persiste...
J'ai réussi à compiler les 3 premiers onglets sur mon onglets synthèse, dès que j'ajoute le 4ie, il vient remplacer les résultats du 3ie.
Est ce que tu as une idée de ce que je pourrais corriger pour arriver à tout combiner ?
Merci :)