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

Rechercher des sujets similaires à "copie feuil nom fixe quelle reference vba"