Macro : Numéro de tableau différent à chaque éxécution de la macro

Bonjour,

Je viens vers vous car je souhaite faire une macro pour automatiser des manipulation faite tous les jours.

A un moment donné, j'ouvre un tableau à partir de données d'un tableau croisé dynamique.

Une nouvelle feuille s'ouvre avec le tableau concerné. Ce tableau change de nom à chaque exécution de la macro (Tableau1 puis Tableau 2 puis Tableau 3 ...)

J'aimerais savoir comment faire pour faire évoluer le numéro du tableau en fonctionne du nombre d'exécution de la macro.

J'espère avoir été assez clair.

Merci par avance de votre aide.

Bonne journée

Salut Matthieu,

A un moment donné, j'ouvre un tableau à partir de données d'un tableau croisé dynamique.

Ce tableau s'ouvre à partir d'une Macro ? Tu as déjà une macro d'installer sur ton classeur ?

Si oui, est-ce que tu peux nous joindre le code ?

J'aimerais savoir comment faire pour faire évoluer le numéro du tableau en fonctionne du nombre d'exécution de la macro.

Tu peux, par exemple, utiliser une cellule protéger contre les modifications manuelles et qui te sert de compteur

A dispo

Salut Matthieu,

A un moment donné, j'ouvre un tableau à partir de données d'un tableau croisé dynamique.

Ce tableau s'ouvre à partir d'une Macro ? Tu as déjà une macro d'installer sur ton classeur ?

Si oui, est-ce que tu peux nous joindre le code ?

Bonjour,

Merci de ton retour.

J'ai fais quelques erreurs lors de l'enregistrement de ma macro mais je le reprendrais plus tard pour rendre le code plus simple.

Voici le code que j'ai créé.

Sub Export()

'

' Export Macro

'

'

Sheets("Export Agorra quotidien ").Select

Windows("Export_Dossiers_Agorra_20190603.csv").Activate

Range("A2").Select

Windows("Dossiers Agorra SE Test.xlsm").Activate

Windows("Export_Dossiers_Agorra_20190603.csv").Activate

Selection.End(xlDown).Select

Windows("Dossiers Agorra SE Test.xlsm").Activate

Windows("Export_Dossiers_Agorra_20190603.csv").Activate

Range("A2:N163").Select

Range("A163").Activate

Selection.Copy

Windows("Dossiers Agorra SE Test.xlsm").Activate

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("Point à date").Select

Application.CutCopyMode = False

ActiveWorkbook.RefreshAll

Range("B6").Select

Selection.ShowDetail = True

Columns("D:D").Select

Selection.Delete Shift:=xlToLeft

Columns("E:K").Select

Selection.Delete Shift:=xlToLeft

Columns("G:I").Select

Selection.Delete Shift:=xlToLeft

Range("C2").Select

ActiveCell.Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("Tableau9[[#Headers],[Code Centre]]").Select

Range("Tableau9").Select

Range("A70").Activate

Selection.Copy

ActiveWindow.ScrollWorkbookTabs Sheets:=-1

ActiveWindow.ScrollWorkbookTabs Sheets:=-1

Sheets("Dossiers à Valoriser").Select

Range("B8").Select

ActiveCell.Offset(0, 2).Range("A1").Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("A1").Select

Range("B8:I76").Select

Range("B76").Activate

Application.CutCopyMode = False

Selection.ClearContents

ActiveWindow.SmallScroll Down:=132

Rows("8:223").Select

Range("A223").Activate

With Selection.Interior

.Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0

End With

ActiveWindow.ScrollRow = 1

Sheets("Feuil8").Select

Selection.Copy

Sheets("Dossiers à Valoriser").Select

Range("B8").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("Feuil8").Select

Application.CutCopyMode = False

ActiveWindow.SelectedSheets.Delete

Sheets("Point à date").Select

Range("B7").Select

Selection.ShowDetail = True

Columns("D:D").Select

Selection.Delete Shift:=xlToLeft

Columns("F:K").Select

Selection.Delete Shift:=xlToLeft

Columns("H:J").Select

Selection.Delete Shift:=xlToLeft

ActiveWindow.ScrollWorkbookTabs Sheets:=-1

Sheets("Dossiers à Valoriser").Select

Range("D8").Select

ActiveCell.Select

Selection.End(xlDown).Select

ActiveCell.Offset(1, -2).Range("A1").Select

Sheets("Feuil9").Select

Range("C2").Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("Tableau9[[#Headers],[Code Centre]]").Select

Range("Tableau9").Select

Range("A9").Activate

Selection.Copy

Sheets("Dossiers à Valoriser").Select

Range("B77").Select

Sheets("Feuil9").Select

Columns("E:E").Select

Application.CutCopyMode = False

Selection.Delete Shift:=xlToLeft

Range("C2").Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("Tableau9[[#Headers],[Code Centre]]").Select

Range("Tableau9").Select

Range("A9").Activate

Selection.Copy

Sheets("Dossiers à Valoriser").Select

ActiveWindow.SmallScroll Down:=-69

Range("D8").Select

Selection.End(xlDown).Select

ActiveCell.Offset(1, -2).Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

ActiveWindow.SmallScroll Down:=-45

Columns("F:F").Select

Application.CutCopyMode = False

Range("F7").Select

ActiveWorkbook.Worksheets("Dossiers à Valoriser").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Dossiers à Valoriser").Sort.SortFields.Add Key:= _

Range("F7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

xlSortNormal

With ActiveWorkbook.Worksheets("Dossiers à Valoriser").Sort

.SetRange Range("B8:I553")

.Header = xlNo

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Sheets("Feuil9").Select

ActiveWindow.SelectedSheets.Delete

Range("C17").Select

Selection.ShowDetail = True

Columns("D:D").Select

Selection.Delete Shift:=xlToLeft

Columns("E:K").Select

Selection.Delete Shift:=xlToLeft

Columns("G:I").Select

Selection.Delete Shift:=xlToLeft

Sheets("Dossiers à Facturer ").Select

ActiveWindow.SmallScroll Down:=-84

Range("D8").Select

ActiveCell.Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("A1").Select

Range("B8:I29").Select

Range("B29").Activate

Selection.ClearContents

With Selection.Interior

.Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0

End With

Sheets("Feuil10").Select

Range("C2").Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("Tableau10[[#Headers],[Code Centre]]").Select

Range("Tableau10").Select

Range("A15").Activate

Sheets("Feuil10").Select

Selection.Copy

Sheets("Dossiers à Facturer ").Select

Range("B8").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("Feuil10").Select

Application.CutCopyMode = False

ActiveWindow.SelectedSheets.Delete

Range("C18").Select

Selection.ShowDetail = True

Columns("D:D").Select

Selection.Delete Shift:=xlToLeft

Columns("E:K").Select

Selection.Delete Shift:=xlToLeft

Columns("G:I").Select

Selection.Delete Shift:=xlToLeft

Sheets("Dossiers à Facturer ").Select

Range("D8").Select

ActiveCell.Select

Selection.End(xlDown).Select

ActiveCell.Offset(1, -2).Range("A1").Select

Sheets("Feuil11").Select

Range("C2").Select

ActiveCell.Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("Tableau11[[#Headers],[Code Centre]]").Select

Range("Tableau11").Select

Range("A21").Activate

Selection.Copy

Sheets("Dossiers à Facturer ").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("Feuil11").Select

Application.CutCopyMode = False

ActiveWindow.SelectedSheets.Delete

Range("C22").Select

Selection.ShowDetail = True

Columns("D:D").Select

Selection.Delete Shift:=xlToLeft

Columns("E:K").Select

Selection.Delete Shift:=xlToLeft

Columns("G:I").Select

Selection.Delete Shift:=xlToLeft

Sheets("Dossiers à Facturer ").Select

Range("D8").Select

Selection.End(xlDown).Select

Range("D8").Select

ActiveCell.Select

Selection.End(xlDown).Select

ActiveCell.Offset(1, -2).Range("A1").Select

Sheets("Feuil12").Select

Range("Tableau12[N° Dossier]").Select

Selection.End(xlDown).Select

ActiveWindow.ScrollRow = 1048535

ActiveWindow.ScrollRow = 1045887

ActiveWindow.ScrollRow = 1040591

ActiveWindow.ScrollRow = 1036619

ActiveWindow.ScrollRow = 745360

ActiveWindow.ScrollRow = 631504

ActiveWindow.ScrollRow = 452777

ActiveWindow.ScrollRow = 419679

ActiveWindow.ScrollRow = 229036

ActiveWindow.ScrollRow = 211826

ActiveWindow.ScrollRow = 182700

ActiveWindow.ScrollRow = 180052

ActiveWindow.ScrollRow = 140335

ActiveWindow.ScrollRow = 54281

ActiveWindow.ScrollRow = 46337

ActiveWindow.ScrollRow = 39718

ActiveWindow.ScrollRow = 37070

ActiveWindow.ScrollRow = 34422

ActiveWindow.ScrollRow = 18535

ActiveWindow.ScrollRow = 14563

ActiveWindow.ScrollRow = 10592

ActiveWindow.ScrollRow = 1

ActiveCell.Offset(-1048575, 0).Range("Tableau12[[#Headers],[Code Centre]]"). _

Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("Tableau12[[#Headers],[Code Centre]]").Select

Range("Tableau12").Select

Selection.Copy

Sheets("Dossiers à Facturer ").Select

ActiveSheet.Paste

Sheets("Feuil12").Select

Application.CutCopyMode = False

ActiveWindow.SelectedSheets.Delete

Range("C23").Select

Selection.ShowDetail = True

Columns("D:D").Select

Selection.Delete Shift:=xlToLeft

Columns("E:K").Select

Selection.Delete Shift:=xlToLeft

Columns("G:I").Select

Selection.Delete Shift:=xlToLeft

Sheets("Dossiers à Facturer ").Select

Range("D8").Select

ActiveCell.Select

Selection.End(xlDown).Select

ActiveCell.Offset(1, -2).Range("A1").Select

Sheets("Feuil13").Select

Range("Tableau13[[#Headers],[N° Dossier]]").Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("Tableau13[[#Headers],[Code Centre]]").Select

Range("Tableau13").Select

Selection.Copy

Sheets("Dossiers à Facturer ").Select

ActiveSheet.Paste

Range("D8").Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, -2).Range("A1").Select

Range("B8:I43").Select

Range("B43").Activate

Application.CutCopyMode = False

With Selection.Interior

.Pattern = xlNone

.TintAndShade = 0

.PatternTintAndShade = 0

End With

Range("H8").Select

Selection.End(xlDown).Select

ActiveWindow.ScrollRow = 1048535

ActiveWindow.ScrollRow = 1045887

ActiveWindow.ScrollRow = 1032648

ActiveWindow.ScrollRow = 1015437

ActiveWindow.ScrollRow = 996902

ActiveWindow.ScrollRow = 377314

ActiveWindow.ScrollRow = 278021

ActiveWindow.ScrollRow = 178728

ActiveWindow.ScrollRow = 170784

ActiveWindow.ScrollRow = 75463

ActiveWindow.ScrollRow = 52957

ActiveWindow.ScrollRow = 31774

ActiveWindow.ScrollRow = 21183

ActiveWindow.ScrollRow = 1

ActiveCell.Offset(-1048568, -4).Range("A1").Select

Selection.End(xlDown).Select

ActiveCell.Offset(0, 4).Range("A1").Select

Range("H8:I43").Select

Range("H43").Activate

Selection.ClearContents

Range("F7").Select

ActiveWorkbook.Worksheets("Dossiers à Facturer ").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Dossiers à Facturer ").Sort.SortFields.Add Key:= _

Range("F7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

xlSortNormal

With ActiveWorkbook.Worksheets("Dossiers à Facturer ").Sort

.SetRange Range("B8:I43")

.Header = xlNo

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Sheets("Point à date").Select

End Sub

Re-

Argh, el famoso "enregistreur de macro" !

A quelle ligne de ton code le nouveau tableau est créé ?

Parceque j'arrive pas à lire le code là x)

Re-

Argh, el famoso "enregistreur de macro" !

A quelle ligne de ton code le nouveau tableau est créé ?

Parceque j'arrive pas à lire le code là x)

Le tableau se crée après la ligne de code "Selection.ShowDetail = True "

Sub Export()

'

' Export Macro

'

'

Sheets("Export Agorra quotidien ").Select

Windows("Export_Dossiers_Agorra_20190603.csv").Activate

Range("A2").Select

Windows("Dossiers Agorra SE Test.xlsm").Activate

Windows("Export_Dossiers_Agorra_20190603.csv").Activate

Selection.End(xlDown).Select

Windows("Dossiers Agorra SE Test.xlsm").Activate

Windows("Export_Dossiers_Agorra_20190603.csv").Activate

Range("A2:N163").Select

Range("A163").Activate

Selection.Copy

Windows("Dossiers Agorra SE Test.xlsm").Activate

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Sheets("Point à date").Select

Application.CutCopyMode = False

ActiveWorkbook.RefreshAll

Range("B6").Select

Selection.ShowDetail = True 'Le tableau se crée

Hmm.. Pas sûr

Je lance un bout de code sur un classeur vierge de mon côté et j'obtiens l'erreur ci-dessous :

capture

Bon, essayer de codifier les instructions ci-dessous :

1 ° Trouve une cellule vierge dans ton classeur qui ne risque pas d'être modifier (Exemple Range("A1"))

2 ° Utilise celle-ci comme un compteur et à chaque fois que tu lance ton code rajoute + 1 à cette cellule (Range("A1") = Range("A1") + 1)

3 ° Utilise cette cellule pour nommer ton tableau créé "Tableau numéro " & Range("A1")"

A dispo

Hmm.. Pas sûr

Je lance un bout de code sur un classeur vierge de mon côté et j'obtiens l'erreur ci-dessous :

Capture.PNG

Je pense que c'est normal car le tableau se crée lorsque je double clique sur un champ de mon tableau croisé dynamique.

Bon, essayer de codifier les instructions ci-dessous :

1 ° Trouve une cellule vierge dans ton classeur qui ne risque pas d'être modifier (Exemple Range("A1"))

2 ° Utilise celle-ci comme un compteur et à chaque fois que tu lance ton code rajoute + 1 à cette cellule (Range("A1") = Range("A1") + 1)

3 ° Utilise cette cellule pour nommer ton tableau créé "Tableau numéro " & Range("A1")"

A dispo

Je vais essayer ca. Merci

Bonjour,

Aussi, mon fichier d'export modifie tous les jours la date du jour.

Son format est "Export_Dossiers_Agorra_20190604.csv

J'ai renseigné la date du jour dans la cellule C1 avec le bon format de date et dans VBA j'ai noté

("Export_Dossiers_Agorra_" & Sheets("Dossiers à Valoriser").Range("C1") & ".csv")

mais cela ne fonctionne pas.

Merci par avance de votre aide.

Bonjour,

Aussi, mon fichier d'export modifie tous les jours la date du jour.

Son format est "Export_Dossiers_Agorra_20190604.csv

J'ai renseigné la date du jour dans la cellule C1 avec le bon format de date et dans VBA j'ai noté

("Export_Dossiers_Agorra_" & Sheets("Dossiers à Valoriser").Range("C1") & ".csv")

mais cela ne fonctionne pas.

Merci par avance de votre aide.

J'ai réussi pour cette problématique.

Néanmoins, je n'y arrive pas pour le 1er problème exposé.

Merci par avance.

Je n'y arrive toujours pas.

Avez vous une solution ?

Merci par avance.

Re Matthieu,

Puisque je ne comprend pas votre code, et que je n'ai pas tout les fichiers dont vous faites appel dans celui-ci, non je n'ai pas de solution.

Je vous invite à reprendre tout votre code depuis le début sans passer par l'enregistreur de macro.

A dispo

Re Matthieu,

Puisque je ne comprend pas votre code, et que je n'ai pas tout les fichiers dont vous faites appel dans celui-ci, non je n'ai pas de solution.

Je vous invite à reprendre tout votre code depuis le début sans passer par l'enregistreur de macro.

A dispo

Je vous joins le fichier.

Merci

Et le fichier avec une extention en ".csv" qui est présent dès la deuxième ligne de code ?

Moi si je le fais tourner le code j'ai un message d'erreur "Indice introuvable" car je n'ai pas ce fichier ".csv" d'ouvert

Et le fichier avec une extention en ".csv" qui est présent dès la deuxième ligne de code ?

Moi si je le fais tourner le code j'ai un message d'erreur "Indice introuvable" car je n'ai pas ce fichier ".csv" d'ouvert

Le voilà.

Merci

Bonjour,

Avez-vous pu tester ?

Merci

Peux-tu m'expliquer, étape par étape ce que ton code est censer faire ?

Peux-tu m'expliquer, étape par étape ce que ton code est censer faire ?

Je fais un export .csv le matin.

La macro fait les tâches suivantes :

1 - récupération des données du fichier .csv et les colles dans la feuille "Export Agorra quotidien"

2 - actualisation des données dans la feuille "Point à date"

3 - double clique sur le chiffre de l'étiquette "Dossier à prendre en charge"

4 - ouverture d'une feuille avec toutes les données de cette étiquette

5 - copie des données et colle dans la feuille "Dossiers à valoriser"

6 - suppression de la feuille qui a été créée à l'étape 4

Ensuite je renouvelle l'opération avec les autres étiquettes en collants les données dans la feuille adéquate.

J'espère que c'est plus clair.

Merci

Re-

Merci pour ces précisions

Et donc, ton problème c'est que le nom de ton fichier .csv change et que ta macro n'arrive pas à le détecter, c'est sa ?

Re-

Merci pour ces précisions

Et donc, ton problème c'est que le nom de ton fichier .csv change et que ta macro n'arrive pas à le détecter, c'est sa ?

Pour le fichier j'ai réussi.

Le problème est qu'en cliquant sur le chiffre du tableau croisé dynamique cela génère une feuille (avec un numéro) et le tableau contenant les données possède aussi un numéro. Ces numéros changent à chaque et j'aimerais que ma macro reprenne les numéros (de la feuille et du tableau) à chaque fois. Est-ce assez clair ?

Re-

j'aimerais que ma macro reprenne les numéros (de la feuille et du tableau) à chaque fois

Où ce trouve les numéros qui doivent être repris ?

j'ai trouvé le TCD dont tu parle, et en double cliquant sur une cellule, cela génère bien une nouvelle feuille

Rechercher des sujets similaires à "macro numero tableau different chaque execution"