Tableau VBA: feuilles Excel par données d'une colonne

Hello hello,

J'aurai besoin d'un coup de main! Voici mon souci du moment:

Je souhaite créer une commande VBA utilisant les TABLEAUX (hors je n'ai pas vraiment de connaissance dessus), à partir d’une feuille présentant plusieurs informations et qui me permettra de créer autant de sheets différentes par information présente dans cette colonne. Ici, il s'agit de lieux.

Je mets ça en pièce jointe.

Je souhaite effectuer la même commande mais avec une colonne différente, par personne. Une macro qui créerait donc autant de feuille que de nom de personnes présentes dans cette colonne (ici que 2 mais pouvant croitre rapidement avec le temps).

Il s'agit de 2 commandes que j'ai déjà créé (et qui fonctionnent) avec l'option RECORDING+bidouillage.. SAUF QUE il se peut que certains des éléments évoluent (nouveaux lieux, nouvelles personnes). Je devrais donc rajouter des lignes de codes manuellement... Ce n'est pas vraiment ce qu'on appel un outil "durable"...

J'aimerai juste que les commandes créent des feuilles automatiquement en fonction des nouveaux éléments présents dans la colonne et non des informations que j'aurai près renseigné.

Cela donne pour la 1er commande - commande en fonction de LIEUX:

Sub Location()

'

' Location Macro

'

Range("B1:J1").Select

Selection.AutoFilter

ActiveSheet.Range("$B$1:$J$7042").AutoFilter Field:=9, Criteria1:= _

"Barangay 101"

Columns("B:J").Select

Selection.Copy

Columns("A:A").Select

Worksheets.Add(, Sheets(Sheets.Count)).Name = ("Barangay 101")

ActiveSheet.Paste

Range("B:B,F:F,G:G").Select

Selection.Delete Shift:=xlToLeft

Application.CutCopyMode = False

Range("A:I").EntireColumn.AutoFit

Idem pour tout les autres lieux!

End Sub

Maintenant pour la 2ème commande - en fonction de NOM de personnes:

Sub WeeklySheet()

'

' WeeklySheet Macro

'

' Positionnement sur la feuille Matrice qui sera copiée tous les jours

Sheets("Result").Select

Columns("B:K").Select ' Sélection des colonnes B à K

Selection.Copy ' Copie

ActiveSheet.Select

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

False, Transpose:=False

Range("A1").Select ' Positionnement du curseur en A1

Worksheets.Add(, Sheets(Sheets.Count)).Name = "Gerald's week" ' Ajout d'une nouvelle feuille

ActiveSheet.Paste ' Collage de la feuille copiée précédemment

Range("A1:I1").Select

Application.CutCopyMode = False

Selection.AutoFilter

ActiveSheet.Range("$A$1:$I$7042").AutoFilter Field:=8, Criteria1:="gerald"

Idem pour l'autre personne

End Sub

Idéalement, j'aimerai bien qu'on m'oriente sur un "cours" ou explications qui me permettrait par la suite d'utiliser par mes propres moyens les tableaux VBA pour approfondir mon outil..

Merci à celles et ceux qui s’arrêterons pour m’aider sur mon problème!

Bonne continuation aux autres!

A+

12test-forum-1.xlsm (119.61 Ko)

Bonjour,

Une procédure à tester sous Mac.

J'ai mis tes données sous forme de tableau.

A te relire.

Cdlt.

7test-ek0-v1.xlsm (36.34 Ko)

Hello Jean-Eric!

Merci beaucoup, la procédure fonctionne pour les recorders!

Toutefois, 3 questions :

  • je n'ai pas réussi à créer la macro soeur (pour la "location"). J'ai juste modifié le numéro de colonne dans ta procédure et rajouter juste un chiffre au nom de ta macro mais cela n'amène rien.. As-tu une idée?
  • la finalité de l'outil doit pouvoir fonctionner sous Windows, hors effectivement je travail personnellement sous Mac. Je pourrais tester cela demain sur Windows mais qu'elle doit être la modification apporté pour que cela soit compatible Mac/Windows stp?
  • ta procédure efface automatiquement les feuilles présentent du fichier Excel. Comment faire pour ne pas exécuter cette commande? Je souhaite imbriquer ta commande dans un fichier Excel comportant plusieurs feuilles qui resteront "fixe". Quand j'exécute la macro, elles sont effacées..

Merci de ton aide!

Bonne journée

Rechercher des sujets similaires à "tableau vba feuilles donnees colonne"