je désire transfere des données d'une feuille a une autre d'un meme classeur.
la feuille 1 la cible,les feuilles 2 à 53 la source
la feuille 1 se compose d'une col "noms" et de 52 col "semaine1, ......."
la feuille 2 est un tableau de calcul et je veux en extraire le résultat
dans un tableau de synthese.
Le soucis étant que l'ordre des noms diffère d'un tableau a l'autre ce qui
m'empeche de faire un copy VBA
J'arrive a extraire les données sources, mais pas a les placées dans mon
tableau de synthèse suivant la ligne "nom", et la colonne "semaine 1".
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Youky
Salut, voici une macro faite pour toi il faut nommer la feuil1 ...Cumul et celle-ci doit impérativement placée la 1ere dans les onglets ......... ce que fait la macro: recopie tous les noms sans doublon en Cumul à partir de A2 cherche le nom et additionne les données en vue de faire une récap sur le Cumul. Aussi il suffit des 52 onglets de semaines et la page Cumul Donc 1er onglet "Cumul" et ensuite les 52 semaines J'essaie d'être clair
Youky
Sub Cumulatif() Dim nom(10000) 'Application.ScreenUpdating = False Sheets("Cumul").Select 'bas du tableau ici BB1000 à modifier si besoin, ici on efface Sheets("Cumul").Range("A2:BB1000").ClearContents For sem = 2 To Sheets.Count For k = 2 To Sheets(sem).[A65000].End(xlUp).Row n = n + 1 nom(n) = Sheets(sem).Cells(k, 1) Next k Next sem For k = 2 To n + 1 Sheets("Cumul").Cells(k, 2) = nom(k - 1) Next Sheets("Cumul").Range("B2:B" & n + 1).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Sheets("Cumul").Range("A2"), Unique:=True Sheets("Cumul").Range("B2:B" & n + 1).ClearContents For za = 2 To n + 1 lenom = Sheets("Cumul").Cells(za, 1) For sem = 2 To Sheets.Count For k = 2 To Sheets(sem).[A65000].End(xlUp).Row If Sheets(sem).Cells(k, 1) = lenom Then For col = 2 To 53 Sheets("Cumul").Cells(za, col) = Sheets(sem).Cells(k, col) + Sheets("Cumul").Cells(za, col) Next Exit For End If Next Next Next 'Application.ScreenUpdating = true End Sub
"Seb V" a écrit dans le message de news:
Bonjour à tous.
je désire transfere des données d'une feuille a une autre d'un meme classeur. la feuille 1 la cible,les feuilles 2 à 53 la source la feuille 1 se compose d'une col "noms" et de 52 col "semaine1, ......." la feuille 2 est un tableau de calcul et je veux en extraire le résultat dans un tableau de synthese. Le soucis étant que l'ordre des noms diffère d'un tableau a l'autre ce qui m'empeche de faire un copy VBA J'arrive a extraire les données sources, mais pas a les placées dans mon tableau de synthèse suivant la ligne "nom", et la colonne "semaine 1".
Merci pour toute aide
Salut,
voici une macro faite pour toi
il faut nommer la feuil1 ...Cumul et celle-ci doit impérativement placée la
1ere dans les onglets
......... ce que fait la macro:
recopie tous les noms sans doublon en Cumul à partir de A2
cherche le nom et additionne les données en vue de faire une récap sur le
Cumul.
Aussi il suffit des 52 onglets de semaines et la page Cumul
Donc 1er onglet "Cumul" et ensuite les 52 semaines
J'essaie d'être clair
Youky
Sub Cumulatif()
Dim nom(10000)
'Application.ScreenUpdating = False
Sheets("Cumul").Select
'bas du tableau ici BB1000 à modifier si besoin, ici on efface
Sheets("Cumul").Range("A2:BB1000").ClearContents
For sem = 2 To Sheets.Count
For k = 2 To Sheets(sem).[A65000].End(xlUp).Row
n = n + 1
nom(n) = Sheets(sem).Cells(k, 1)
Next k
Next sem
For k = 2 To n + 1
Sheets("Cumul").Cells(k, 2) = nom(k - 1)
Next
Sheets("Cumul").Range("B2:B" & n + 1).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("Cumul").Range("A2"), Unique:=True
Sheets("Cumul").Range("B2:B" & n + 1).ClearContents
For za = 2 To n + 1
lenom = Sheets("Cumul").Cells(za, 1)
For sem = 2 To Sheets.Count
For k = 2 To Sheets(sem).[A65000].End(xlUp).Row
If Sheets(sem).Cells(k, 1) = lenom Then
For col = 2 To 53
Sheets("Cumul").Cells(za, col) = Sheets(sem).Cells(k, col) +
Sheets("Cumul").Cells(za, col)
Next
Exit For
End If
Next
Next
Next
'Application.ScreenUpdating = true
End Sub
"Seb V" <SebV@discussions.microsoft.com> a écrit dans le message de news:
19C1A28F-E653-4003-9E9A-743359B2428F@microsoft.com...
Bonjour à tous.
je désire transfere des données d'une feuille a une autre d'un meme
classeur.
la feuille 1 la cible,les feuilles 2 à 53 la source
la feuille 1 se compose d'une col "noms" et de 52 col "semaine1, ......."
la feuille 2 est un tableau de calcul et je veux en extraire le résultat
dans un tableau de synthese.
Le soucis étant que l'ordre des noms diffère d'un tableau a l'autre ce qui
m'empeche de faire un copy VBA
J'arrive a extraire les données sources, mais pas a les placées dans mon
tableau de synthèse suivant la ligne "nom", et la colonne "semaine 1".
Salut, voici une macro faite pour toi il faut nommer la feuil1 ...Cumul et celle-ci doit impérativement placée la 1ere dans les onglets ......... ce que fait la macro: recopie tous les noms sans doublon en Cumul à partir de A2 cherche le nom et additionne les données en vue de faire une récap sur le Cumul. Aussi il suffit des 52 onglets de semaines et la page Cumul Donc 1er onglet "Cumul" et ensuite les 52 semaines J'essaie d'être clair
Youky
Sub Cumulatif() Dim nom(10000) 'Application.ScreenUpdating = False Sheets("Cumul").Select 'bas du tableau ici BB1000 à modifier si besoin, ici on efface Sheets("Cumul").Range("A2:BB1000").ClearContents For sem = 2 To Sheets.Count For k = 2 To Sheets(sem).[A65000].End(xlUp).Row n = n + 1 nom(n) = Sheets(sem).Cells(k, 1) Next k Next sem For k = 2 To n + 1 Sheets("Cumul").Cells(k, 2) = nom(k - 1) Next Sheets("Cumul").Range("B2:B" & n + 1).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Sheets("Cumul").Range("A2"), Unique:=True Sheets("Cumul").Range("B2:B" & n + 1).ClearContents For za = 2 To n + 1 lenom = Sheets("Cumul").Cells(za, 1) For sem = 2 To Sheets.Count For k = 2 To Sheets(sem).[A65000].End(xlUp).Row If Sheets(sem).Cells(k, 1) = lenom Then For col = 2 To 53 Sheets("Cumul").Cells(za, col) = Sheets(sem).Cells(k, col) + Sheets("Cumul").Cells(za, col) Next Exit For End If Next Next Next 'Application.ScreenUpdating = true End Sub
"Seb V" a écrit dans le message de news:
Bonjour à tous.
je désire transfere des données d'une feuille a une autre d'un meme classeur. la feuille 1 la cible,les feuilles 2 à 53 la source la feuille 1 se compose d'une col "noms" et de 52 col "semaine1, ......." la feuille 2 est un tableau de calcul et je veux en extraire le résultat dans un tableau de synthese. Le soucis étant que l'ordre des noms diffère d'un tableau a l'autre ce qui m'empeche de faire un copy VBA J'arrive a extraire les données sources, mais pas a les placées dans mon tableau de synthèse suivant la ligne "nom", et la colonne "semaine 1".
Merci pour toute aide
Seb V
Salut Youky
Merci de t'être penché sur mon problème. Vu l'heure tardive (et ma fatigue), je ne peux essayer ta macro maintenant mais le ferais dés que possible. Je te tiendrais au courant quoi qu'il en soit sur ce post.
Merci encore @+
Salut, voici une macro faite pour toi il faut nommer la feuil1 ...Cumul et celle-ci doit impérativement placée la 1ere dans les onglets .......... ce que fait la macro: recopie tous les noms sans doublon en Cumul à partir de A2 cherche le nom et additionne les données en vue de faire une récap sur le Cumul. Aussi il suffit des 52 onglets de semaines et la page Cumul Donc 1er onglet "Cumul" et ensuite les 52 semaines J'essaie d'être clair
Youky
Sub Cumulatif() Dim nom(10000) 'Application.ScreenUpdating = False Sheets("Cumul").Select 'bas du tableau ici BB1000 à modifier si besoin, ici on efface Sheets("Cumul").Range("A2:BB1000").ClearContents For sem = 2 To Sheets.Count For k = 2 To Sheets(sem).[A65000].End(xlUp).Row n = n + 1 nom(n) = Sheets(sem).Cells(k, 1) Next k Next sem For k = 2 To n + 1 Sheets("Cumul").Cells(k, 2) = nom(k - 1) Next Sheets("Cumul").Range("B2:B" & n + 1).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Sheets("Cumul").Range("A2"), Unique:=True Sheets("Cumul").Range("B2:B" & n + 1).ClearContents For za = 2 To n + 1 lenom = Sheets("Cumul").Cells(za, 1) For sem = 2 To Sheets.Count For k = 2 To Sheets(sem).[A65000].End(xlUp).Row If Sheets(sem).Cells(k, 1) = lenom Then For col = 2 To 53 Sheets("Cumul").Cells(za, col) = Sheets(sem).Cells(k, col) + Sheets("Cumul").Cells(za, col) Next Exit For End If Next Next Next 'Application.ScreenUpdating = true End Sub
"Seb V" a écrit dans le message de news:
Bonjour à tous.
je désire transfere des données d'une feuille a une autre d'un meme classeur. la feuille 1 la cible,les feuilles 2 à 53 la source la feuille 1 se compose d'une col "noms" et de 52 col "semaine1, ......." la feuille 2 est un tableau de calcul et je veux en extraire le résultat dans un tableau de synthese. Le soucis étant que l'ordre des noms diffère d'un tableau a l'autre ce qui m'empeche de faire un copy VBA J'arrive a extraire les données sources, mais pas a les placées dans mon tableau de synthèse suivant la ligne "nom", et la colonne "semaine 1".
Merci pour toute aide
Salut Youky
Merci de t'être penché sur mon problème.
Vu l'heure tardive (et ma fatigue), je ne peux essayer ta macro maintenant
mais le ferais dés que possible.
Je te tiendrais au courant quoi qu'il en soit sur ce post.
Merci encore @+
Salut,
voici une macro faite pour toi
il faut nommer la feuil1 ...Cumul et celle-ci doit impérativement placée la
1ere dans les onglets
.......... ce que fait la macro:
recopie tous les noms sans doublon en Cumul à partir de A2
cherche le nom et additionne les données en vue de faire une récap sur le
Cumul.
Aussi il suffit des 52 onglets de semaines et la page Cumul
Donc 1er onglet "Cumul" et ensuite les 52 semaines
J'essaie d'être clair
Youky
Sub Cumulatif()
Dim nom(10000)
'Application.ScreenUpdating = False
Sheets("Cumul").Select
'bas du tableau ici BB1000 à modifier si besoin, ici on efface
Sheets("Cumul").Range("A2:BB1000").ClearContents
For sem = 2 To Sheets.Count
For k = 2 To Sheets(sem).[A65000].End(xlUp).Row
n = n + 1
nom(n) = Sheets(sem).Cells(k, 1)
Next k
Next sem
For k = 2 To n + 1
Sheets("Cumul").Cells(k, 2) = nom(k - 1)
Next
Sheets("Cumul").Range("B2:B" & n + 1).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("Cumul").Range("A2"), Unique:=True
Sheets("Cumul").Range("B2:B" & n + 1).ClearContents
For za = 2 To n + 1
lenom = Sheets("Cumul").Cells(za, 1)
For sem = 2 To Sheets.Count
For k = 2 To Sheets(sem).[A65000].End(xlUp).Row
If Sheets(sem).Cells(k, 1) = lenom Then
For col = 2 To 53
Sheets("Cumul").Cells(za, col) = Sheets(sem).Cells(k, col) +
Sheets("Cumul").Cells(za, col)
Next
Exit For
End If
Next
Next
Next
'Application.ScreenUpdating = true
End Sub
"Seb V" <SebV@discussions.microsoft.com> a écrit dans le message de news:
19C1A28F-E653-4003-9E9A-743359B2428F@microsoft.com...
Bonjour à tous.
je désire transfere des données d'une feuille a une autre d'un meme
classeur.
la feuille 1 la cible,les feuilles 2 à 53 la source
la feuille 1 se compose d'une col "noms" et de 52 col "semaine1, ......."
la feuille 2 est un tableau de calcul et je veux en extraire le résultat
dans un tableau de synthese.
Le soucis étant que l'ordre des noms diffère d'un tableau a l'autre ce qui
m'empeche de faire un copy VBA
J'arrive a extraire les données sources, mais pas a les placées dans mon
tableau de synthèse suivant la ligne "nom", et la colonne "semaine 1".
Merci de t'être penché sur mon problème. Vu l'heure tardive (et ma fatigue), je ne peux essayer ta macro maintenant mais le ferais dés que possible. Je te tiendrais au courant quoi qu'il en soit sur ce post.
Merci encore @+
Salut, voici une macro faite pour toi il faut nommer la feuil1 ...Cumul et celle-ci doit impérativement placée la 1ere dans les onglets .......... ce que fait la macro: recopie tous les noms sans doublon en Cumul à partir de A2 cherche le nom et additionne les données en vue de faire une récap sur le Cumul. Aussi il suffit des 52 onglets de semaines et la page Cumul Donc 1er onglet "Cumul" et ensuite les 52 semaines J'essaie d'être clair
Youky
Sub Cumulatif() Dim nom(10000) 'Application.ScreenUpdating = False Sheets("Cumul").Select 'bas du tableau ici BB1000 à modifier si besoin, ici on efface Sheets("Cumul").Range("A2:BB1000").ClearContents For sem = 2 To Sheets.Count For k = 2 To Sheets(sem).[A65000].End(xlUp).Row n = n + 1 nom(n) = Sheets(sem).Cells(k, 1) Next k Next sem For k = 2 To n + 1 Sheets("Cumul").Cells(k, 2) = nom(k - 1) Next Sheets("Cumul").Range("B2:B" & n + 1).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Sheets("Cumul").Range("A2"), Unique:=True Sheets("Cumul").Range("B2:B" & n + 1).ClearContents For za = 2 To n + 1 lenom = Sheets("Cumul").Cells(za, 1) For sem = 2 To Sheets.Count For k = 2 To Sheets(sem).[A65000].End(xlUp).Row If Sheets(sem).Cells(k, 1) = lenom Then For col = 2 To 53 Sheets("Cumul").Cells(za, col) = Sheets(sem).Cells(k, col) + Sheets("Cumul").Cells(za, col) Next Exit For End If Next Next Next 'Application.ScreenUpdating = true End Sub
"Seb V" a écrit dans le message de news:
Bonjour à tous.
je désire transfere des données d'une feuille a une autre d'un meme classeur. la feuille 1 la cible,les feuilles 2 à 53 la source la feuille 1 se compose d'une col "noms" et de 52 col "semaine1, ......." la feuille 2 est un tableau de calcul et je veux en extraire le résultat dans un tableau de synthese. Le soucis étant que l'ordre des noms diffère d'un tableau a l'autre ce qui m'empeche de faire un copy VBA J'arrive a extraire les données sources, mais pas a les placées dans mon tableau de synthèse suivant la ligne "nom", et la colonne "semaine 1".