Copie d'une feuil sans nom fixe (quelle référence pour VBA?)
Bonjour
Je souhaite faire des copies de tableaux dans une autre feuille que celle des tableaux.
Mon problème est que les feuilles ou se situent les tableaux sont créés et supprimés régulièrement, et les noms des feuilles à copiées varient, donc dans une macros je ne sait pas comment faire référence a ces feuille, qui n'ont pas de nom fixe.
Etant donné que le nom des feuille crées se situent dans une colonne situé sur une feuille fixe, serait il possible de dire de copier la feuille qui porte le nom d'une cellule qui se situe dans la feuille fixe?
Un peut complexe, je met donc le fichier ci joint si quelqu'un peut m'aider.
je voudrais copier les tableaux feuilles "paul" et "vincent" quand il sont modifier dans ">Planning group"
Cordialement
vincent
Bonsoir
Je suis toujours bloquer sue ce problème. je vais tenter d'expliquer ce que je tente de faire :
Quand une feuille qui ne commence pas par ">" est désactivé
Copier les cellules remplies des feuilles qui ne commencent pas par ">"
Coller la selection de la feuille qui porte le nom de la cellule "I1" dans feuille ">Input" dans la feuille ">Planning group" en "A3"
Coller la selection de la feuille qui porte le nom de la cellule "I2" dans feuille ">Input" dans la feuille ">Planning group" en dessous du tableau copier juste avant
Coller la selection de la feuille qui porte le nom de la cellule "I3" dans feuille ">Input" dans la feuille ">Planning group" en dessous du tableau copier juste avant
Je pense commencer la copie par ceci :
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Left(Sh.Name, 1) <> ">" Then SheetDeactivate.Range("A3").Select
SheetDeactivate.Range(Selection, Selection.End(xlToRight)).Select
SheetDeactivate.Range(Selection, Selection.End(xlDown)).Select
et pour la suite, je ne parviens pas a trouver comment faire référence a la feuille qui porte le nom de la cellule I1 dans la feuille ">Input"
Ça me serait vraiment d'une grande aide, si quelqu'un pouvait m'apporter ne serait ce qu'un bout de réponse.
merci
Vincent
Bnojour,
Sheets(Sheets(1).[I1].Value).Select
ou utiliser ta variable "c" provenant de For Each c In Range("I1", [I65000].End(3)) avec :
For Each c In Range("I1", [I65000].End(3)).Value
Sheets(c).Select
As quoi te sert Z = Sheets(c.Value).[I1] ?
A+
Merci dachevid pour ton aide
j'ai utilisé la première formule, et j'ai finalement inséré un bouton, car sinon la marcro tournait en boucle.
par contre j'ai un petit problème avec la sélection des cellules :
je voudrais que la sélection commence en A3, mais certaines cellules de la ligne 3 sont vides, donc le tableau ne se copie pas en entier. Seul la ligne 2 est complètement remplie.
Y aurait-il un moyen de sélectionne uniquement à partir de A3, mais de faire "Range(Selection, Selection.End(xlToRight))." à partir de A2?
Sub Update()
'
' Update Macro
Sheets(Sheets(1).[I1].Value).Select
ActiveSheet.Range("A2").Select
ActiveSheet.Range(Selection, Selection.End(xlToRight)).Select
ActiveSheet.Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Worksheets(">Planning group").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets(Sheets(1).[I2].Value).Select
ActiveSheet.Range("A2").Select
ActiveSheet.Range(Selection, Selection.End(xlToRight)).Select
ActiveSheet.Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Worksheets(">Planning group").Select
ActiveSheet.Range("A3").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
vincent
Bonsoir,
J'ai jeté un oeil vite, ça marche avec le code ci-dessous mais ce n'est peut-être pas exactement ce que tu veux, je n'ai pas eu le temps de tout relire :
Range("A2").Select
Range("A3", ActiveCell.End(xlToRight).Offset(1, 0)).Select
Je pars de A2 et ensuite je sélectionne de A3 jusqu'à la dernière colonne remplie en ligne 2 tout en restant sur la ligne 3.
A+
Bonjour
Je te remercie, ça a l'aire de fonctionner correctement.
vincent