Compilation onglets
Résolu
pijed
Messages postés
41
Statut
Membre
-
pijed Messages postés 41 Statut Membre -
pijed Messages postés 41 Statut Membre -
Bonjour,
je cherche à compiler les places A40:D40 des différents onglets d'un dossier. J'ai trouvé une macro qui peut m'aider. Par contre j'aimerais savoir ce que sont le H et le 7. J'ai compris que dans cette macro la compilation se fait de la colonne B à la colonne Q mais elle semble ne ramener que la ligne 1. Moi il me faut la ligne 40 de A à D.
Par ailleurs j'aimerais savoir s'il y a un moyen de ne faire que raffraîchir les données si elles se trouvent déjà 1 fois dans l'onglet compilation car lorsqu'on lance la macro ci-dessous cela rapporte de nouveau les onglets déjà compilés et on ne sait plus quoi est quoi.
Sub a()
Dim ws As Worksheet, x&
For Each ws In Worksheets
If ws.Name <> "Compilation" Then
x = ws.Cells(Rows.Count, "H").End(3).Row
ws.Range(ws.Cells(7, "B"), ws.Cells(x, "Q")).Copy
Sheets("Compilation").Cells(Rows.Count, "B").End(3)(2).PasteSpecial xlValues
Application.CutCopyMode = False
End If
Next
End Sub
Je vous remercie par avance pour votre aide précieuse.
je cherche à compiler les places A40:D40 des différents onglets d'un dossier. J'ai trouvé une macro qui peut m'aider. Par contre j'aimerais savoir ce que sont le H et le 7. J'ai compris que dans cette macro la compilation se fait de la colonne B à la colonne Q mais elle semble ne ramener que la ligne 1. Moi il me faut la ligne 40 de A à D.
Par ailleurs j'aimerais savoir s'il y a un moyen de ne faire que raffraîchir les données si elles se trouvent déjà 1 fois dans l'onglet compilation car lorsqu'on lance la macro ci-dessous cela rapporte de nouveau les onglets déjà compilés et on ne sait plus quoi est quoi.
Sub a()
Dim ws As Worksheet, x&
For Each ws In Worksheets
If ws.Name <> "Compilation" Then
x = ws.Cells(Rows.Count, "H").End(3).Row
ws.Range(ws.Cells(7, "B"), ws.Cells(x, "Q")).Copy
Sheets("Compilation").Cells(Rows.Count, "B").End(3)(2).PasteSpecial xlValues
Application.CutCopyMode = False
End If
Next
End Sub
Je vous remercie par avance pour votre aide précieuse.
A voir également:
- Compilation onglets
- Restaurer les onglets chrome - Guide
- Ouvrir plusieurs onglets en même temps - Guide
- Breach compilation c'est quoi - Guide
- Fusionner des onglets excel - Guide
- Groupe d'onglets chrome - Guide
4 réponses
Bonjour,
explication du code
Je vois pour le rafraîchissement données feuille présentes dans Compilation
explication du code
Sub a() Dim ws As Worksheet, x& For Each ws In Worksheets If ws.Name <> "Compilation" Then x = ws.Cells(Rows.Count, "H").End(3).Row 'dernier cellule non vide colonne H de la feuille en cours ws.Range(ws.Cells(7, "B"), ws.Cells(x, "Q")).Copy 'copy les donnees de la feuille en cours de cellule B7 a Qx 'colle les donnees copiees dans feuille Compilation a partir de la colonne B en partant de la derniere cellule non vide Sheets("Compilation").Cells(Rows.Count, "B").End(3)(2).PasteSpecial xlValues Application.CutCopyMode = False 'vide le presse papier End If Next End Sub
Je vois pour le rafraîchissement données feuille présentes dans Compilation
Bonjour Pijed
Un fichier avec ce que j'ai compris de votre problème
https://www.cjoint.com/c/HCejYZ2RaIx
Un fichier avec ce que j'ai compris de votre problème
https://www.cjoint.com/c/HCejYZ2RaIx
Bonjour PHILOU10120,
Petit detail:
un moyen de ne faire que raffraîchir les données si elles se trouvent déjà 1 fois dans l'onglet compilation
Petit probleme, comment savoir quels onglets doivent figurer dans la liste Compilation
en attendant
Piged:
exemple de code qui au premier tour recupere les donnees des feuilles non "Compilation" avec en plus le nom de l'onglet pour majour suivant si deplacement feuille ou ....... et les tours suivant:
si deja dans la liste: majour des donnees (meme si ce sont les memes)
si pas dans la liste: ajoute les donnees et nom, mais comme precise plus haut, quels sont les onglets qui doivent entrer dans la feuille Compilation???????????
Petit detail:
un moyen de ne faire que raffraîchir les données si elles se trouvent déjà 1 fois dans l'onglet compilation
Petit probleme, comment savoir quels onglets doivent figurer dans la liste Compilation
en attendant
Piged:
exemple de code qui au premier tour recupere les donnees des feuilles non "Compilation" avec en plus le nom de l'onglet pour majour suivant si deplacement feuille ou ....... et les tours suivant:
si deja dans la liste: majour des donnees (meme si ce sont les memes)
si pas dans la liste: ajoute les donnees et nom, mais comme precise plus haut, quels sont les onglets qui doivent entrer dans la feuille Compilation???????????
Sub a() Dim ws As Worksheet, x& For Each ws In Worksheets If ws.Name <> "Compilation" Then Sh = ws.Name With Worksheets("Compilation") drl = .Range("E" & .Rows.Count).End(xlUp).Row + 1 'dernier cellule non vide colonne H de la feuille en cours Nb = Application.CountIf(.Range("E2:E" & drl), Sh) 'nombre de fois nom d'onglet dans le liste If Nb < 1 Then 'nom d'onglet pas dans liste .Range("A" & drl).Resize(, 4) = ws.Range("A40:D40").Value 'copie des donnees .Range("E" & drl) = ws.Name 'ecriture nom d'onglet pour recherche Else 'nom d'onglet dans la liste L = .Columns("E").Find(Sh, .Cells(1, "E"), , xlWhole).Row 'recherche ligne nom d'onglet pour majour .Range("A" & L).Resize(, 4) = ws.Range("A40:D40").Value End If End With End If Next End Sub
Bonjour,
Je suppose que CPTES 17 est une partie du nom d'onglet:
Je suppose que CPTES 17 est une partie du nom d'onglet:
Sub a() Dim ws As Worksheet, x& For Each ws In Worksheets If ws.Name <> "Compilation" And ws.Name Like "CPTES 17*" Then Sh = ws.Name With Worksheets("Compilation") drl = .Range("E" & .Rows.Count).End(xlUp).Row + 1 'dernier cellule non vide colonne H de la feuille en cours Nb = Application.CountIf(.Range("E2:E" & drl), Sh) 'nombre de fois nom d'onglet dans le liste If Nb < 1 Then 'nom d'onglet pas dans liste .Range("A" & drl).Resize(, 4) = ws.Range("A40:D40").Value 'copie des donnees .Range("E" & drl) = ws.Name 'ecriture nom d'onglet pour recherche Else 'nom d'onglet dans la liste L = .Columns("E").Find(Sh, .Cells(1, "E"), , xlWhole).Row 'recherche ligne nom d'onglet pour majour .Range("A" & L).Resize(, 4) = ws.Range("A40:D40").Value End If End With End If Next End Sub
Bonjour et merci beaucoup pour votre réponse. Le point est que le fait d'ajouter"CPTES 17", la macro me ramène les bons onglets mais pas les cellules A40 à D40.
La maco sans And ws.Name Like "CPTES 17*" fonctionne bien mais effectivement j'ai des onglets que je ne souhaite pas avoir. voyez-vous pourquoi?
La maco sans And ws.Name Like "CPTES 17*" fonctionne bien mais effectivement j'ai des onglets que je ne souhaite pas avoir. voyez-vous pourquoi?
Re,
ramène les bons onglets mais pas les cellules A40 à D40
Ca marche chez moi et pas chez vous????????????, Bizarre !!!!
Pouvez mettre votre fichier a dispo
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
'mon partage
https://mon-partage.fr/
ou
www.transfernow.net 'fichier jusqu'a 4G
ramène les bons onglets mais pas les cellules A40 à D40
Ca marche chez moi et pas chez vous????????????, Bizarre !!!!
Pouvez mettre votre fichier a dispo
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
'mon partage
https://mon-partage.fr/
ou
www.transfernow.net 'fichier jusqu'a 4G
Bonjour Pijed
La macro fonctionne si on met une * avant "*CPTES 17*"
La macro fonctionne si on met une * avant "*CPTES 17*"
Bonjour PHILOU10120,
La macro fonctionne si on met une * avant "*CPTES 17*"
oui, si nom: aCPTES 17x
mais "CPTES 17*
Si nom: CPTES 17x
Et chez moi marche tres bien avec "CPTES 17*. Mais le gars a ecrit:
les onglets qui contiennent "CPTES 17". Alors premier cas ou deuxieme??
Sur que dans tous les cas "*CPTES 17*" marche, mais tout depend de ce que l'on veut ....
La macro fonctionne si on met une * avant "*CPTES 17*"
oui, si nom: aCPTES 17x
mais "CPTES 17*
Si nom: CPTES 17x
Et chez moi marche tres bien avec "CPTES 17*. Mais le gars a ecrit:
les onglets qui contiennent "CPTES 17". Alors premier cas ou deuxieme??
Sur que dans tous les cas "*CPTES 17*" marche, mais tout depend de ce que l'on veut ....