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 :
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