marinehaye
XLDnaute Nouveau
Bonjour à tous,
Je suis toute nouvelle sur le site, encore merci pour l'acceptation!
Je travaille actuellement sur mon premier projet avec des macros et je rencontre plusieurs difficultés. Si vous avez un peu de temps pour m'aider, je vous en remercie vivement.
Je suis en train de créer un module de macro pour transformer un tableau en un autre
- Je souhaite faire un tri selon 3 critères :
1. Tri par ordre alphabétique de la la colonne B (département)
2. Puis tri du plus petit au plus grand de la colonne A (Centre de coût)
3. Enfin, tri par ordre alphabétique de la colonne C (Nom de Famille).
J'utilise cette macro enregistrée, cependant le premier tri n'est pas exécuté :
ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1").Sort. _
SortFields.Add2 Key:=Range("B4:B65536"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1").Sort. _
SortFields.Add2 Key:=Range("A4:A65536"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1").Sort. _
SortFields.Add2 Key:=Range("D465536"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1"). _
Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sauriez-vous d'où vient le problème s'il vous plait?
- Dans mon module j'ai réussi à insérer une ligne vide dès lors que la valeur de la colonne A (Centre de coût) change.
Cependant, j'aimerai que certaines des cellules de la ligne se remplissent. J'y arrive bien dès lors qu'il faut copier/coller la cellule du dessus ou encore insérer du texte, mais je rencontre un problème dès lors qu'il y a un calcul à faire :
* En colonne D, j'aimerais qu'apparaisse le nombre de ligne pleine avant la ligne vide, jusqu'à la fin du tableau (le nombre de ligne peut varier) ;
* En colonne H, j'aimerais qu'apparaisse l'addition des lignes pleines avant la ligne vide, jusqu'à la fin du tableau (le nombre de ligne peut varier)
* J'aimerai que la police de cette ligne se mette en rouge
- Dans mon module, après avoir inséré une ligne vide et l'avoir remplie, j'insère une seconde ligne vide à la suite de la première.
J'aimerai qu'elle se remplisse de rouge, je n'y arrive pas.
- Pour finir, j'ai réussi à créer autant d'onglet que de Département (colonne B). Cependant, j'aimerai que les données du tableau 1 soient ventilées par centre de coût dans le bon onglet de son département. En clair, j'aimerai que des colonnes Centre de Coût (Colonne A) soient créées dans l'onglet du bon département et que les Noms (colonne C) soient listés sous le bon centre de coût dans l'onglet de son département.
Je vous joins à ce message :
1. mon tableau, avec ma macro actuelle (TEST)
2. le tableau de départ (NAVETTE)
J'espère être assez claire, n'hésitez pas si besoin!
Un grand merci d'avance pour votre aide.
Belle journée
Je suis toute nouvelle sur le site, encore merci pour l'acceptation!
Je travaille actuellement sur mon premier projet avec des macros et je rencontre plusieurs difficultés. Si vous avez un peu de temps pour m'aider, je vous en remercie vivement.
Je suis en train de créer un module de macro pour transformer un tableau en un autre
- Je souhaite faire un tri selon 3 critères :
1. Tri par ordre alphabétique de la la colonne B (département)
2. Puis tri du plus petit au plus grand de la colonne A (Centre de coût)
3. Enfin, tri par ordre alphabétique de la colonne C (Nom de Famille).
J'utilise cette macro enregistrée, cependant le premier tri n'est pas exécuté :
ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1").Sort. _
SortFields.Add2 Key:=Range("B4:B65536"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1").Sort. _
SortFields.Add2 Key:=Range("A4:A65536"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1").Sort. _
SortFields.Add2 Key:=Range("D465536"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Navette ").ListObjects("Tableau1"). _
Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sauriez-vous d'où vient le problème s'il vous plait?
- Dans mon module j'ai réussi à insérer une ligne vide dès lors que la valeur de la colonne A (Centre de coût) change.
Cependant, j'aimerai que certaines des cellules de la ligne se remplissent. J'y arrive bien dès lors qu'il faut copier/coller la cellule du dessus ou encore insérer du texte, mais je rencontre un problème dès lors qu'il y a un calcul à faire :
* En colonne D, j'aimerais qu'apparaisse le nombre de ligne pleine avant la ligne vide, jusqu'à la fin du tableau (le nombre de ligne peut varier) ;
* En colonne H, j'aimerais qu'apparaisse l'addition des lignes pleines avant la ligne vide, jusqu'à la fin du tableau (le nombre de ligne peut varier)
* J'aimerai que la police de cette ligne se mette en rouge
- Dans mon module, après avoir inséré une ligne vide et l'avoir remplie, j'insère une seconde ligne vide à la suite de la première.
J'aimerai qu'elle se remplisse de rouge, je n'y arrive pas.
- Pour finir, j'ai réussi à créer autant d'onglet que de Département (colonne B). Cependant, j'aimerai que les données du tableau 1 soient ventilées par centre de coût dans le bon onglet de son département. En clair, j'aimerai que des colonnes Centre de Coût (Colonne A) soient créées dans l'onglet du bon département et que les Noms (colonne C) soient listés sous le bon centre de coût dans l'onglet de son département.
Je vous joins à ce message :
1. mon tableau, avec ma macro actuelle (TEST)
2. le tableau de départ (NAVETTE)
J'espère être assez claire, n'hésitez pas si besoin!
Un grand merci d'avance pour votre aide.
Belle journée