Aide VBA selectionner derniere colonne
blorg
-
blorg -
blorg -
Bonjour tout le monde,
J'aurais besoins d'aide car je suis actuellement en train de tenter d'enregistrer un Macro tout bête.
J'ai besoins que ce macro sélectionne automatiquement la dernière colonne d'un tableau pour la surligner en jaune.
J'ai besoins d'appliquer ce macro à de nombreuses fiches excel. Je me place sur la cellule A1 quand je lance l'enregistrement, je fais donc ctrl + droite pour atteindre la premiere cellule de la dernière colonne (ou bien ctrl+end pour atteindre la dernière cellule de la dernière colonne), puis ctrl+alt+bas pour sélectionner toute la colonne.
Le macro fonctionne bien pour tous les fiches excel qui contiennent le même nombre de colonnes. Cependant ça ne marche pas pour celles qui en possèdent plus/moins. En effet, le macro retient la référence de la colonne sélectionnée pendant l'enregistrement plutôt que la commande qui est censée sélectionner la dernière colonne d'un tableau.
Est-ce normal ? Existe-t-il un moyen pour que mon macro selectionne la dernière colonne pour des tableaux de diffèrentes tailles ?
Voici mon code actuellement
Je cherche donc a changer la partie:
J'aimerais quelle selectionne toutes les colonnes et insere un tableau. Il faut donc un moyen pour trouver la derniere colone et le nombre total de ligne. Je pensais que le raccourci Maj+Ctrl+Flechedroite+Fleche en bas selectionnerait marcherais. Mais on voit bien sur la derniere ligne qu'il selectionne toujours le tableau A1 a AC579.
Meme chose pour cette partie:
Merci infiniement pour votre aide!
PS: Clavier espagnol, navre pour les accents.
J'aurais besoins d'aide car je suis actuellement en train de tenter d'enregistrer un Macro tout bête.
J'ai besoins que ce macro sélectionne automatiquement la dernière colonne d'un tableau pour la surligner en jaune.
J'ai besoins d'appliquer ce macro à de nombreuses fiches excel. Je me place sur la cellule A1 quand je lance l'enregistrement, je fais donc ctrl + droite pour atteindre la premiere cellule de la dernière colonne (ou bien ctrl+end pour atteindre la dernière cellule de la dernière colonne), puis ctrl+alt+bas pour sélectionner toute la colonne.
Le macro fonctionne bien pour tous les fiches excel qui contiennent le même nombre de colonnes. Cependant ça ne marche pas pour celles qui en possèdent plus/moins. En effet, le macro retient la référence de la colonne sélectionnée pendant l'enregistrement plutôt que la commande qui est censée sélectionner la dernière colonne d'un tableau.
Est-ce normal ? Existe-t-il un moyen pour que mon macro selectionne la dernière colonne pour des tableaux de diffèrentes tailles ?
Voici mon code actuellement
Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+a
'
Dim dernCol As Integer
dernCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
Range("B:B").Select
Selection.Replace What:="1", Replacement:="Band 1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="3", Replacement:="Band 2", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="5", Replacement:="Band 4", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="6", Replacement:="Band 4", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$AC$579"), , xlYes).Name = _
"Table1"
Range("Table1[#Headers,[Source Code]]").Select
Selection.End(xlToRight).Select
Range(Selection, Selection.End(xlDown)).Select
With Columns(dernCol).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
Selection.End(xlToLeft).Select
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=3, Criteria1:= _
"Band 1"
Range("A:A,B:B,C:C,D:D,E:E").Select
Range("Table1[#Headers,[Desk]]").Activate
ActiveWindow.FreezePanes = True
End Sub
Je cherche donc a changer la partie:
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$AC$579"), , xlYes).Name = _
"Table1"
J'aimerais quelle selectionne toutes les colonnes et insere un tableau. Il faut donc un moyen pour trouver la derniere colone et le nombre total de ligne. Je pensais que le raccourci Maj+Ctrl+Flechedroite+Fleche en bas selectionnerait marcherais. Mais on voit bien sur la derniere ligne qu'il selectionne toujours le tableau A1 a AC579.
Meme chose pour cette partie:
Selection.End(xlToRight).Select
Range(Selection, Selection.End(xlDown)).Select
With Columns(dernCol).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0 Selection.End(xlToRight).Select
Merci infiniement pour votre aide!
PS: Clavier espagnol, navre pour les accents.
A voir également:
- Aide VBA selectionner derniere colonne
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Supprimer dernière page word - Guide
- Colonne word - Guide
2 réponses
Bonjour,
L'enregistreur de macro t'écrit de nombreuses lignes inutiles, pour coloriser la dernière colonne d'un tableau variable en prenant référence sur la ligne 1
Sub sélection()
Range("A1").End(xlToRight).EntireColumn.Interior.ColorIndex = 6
End Sub
coloriser une colonne complète va prendre pas mal de ressource de ton système et alourdir ton fichier, limite la colorisation à la fin du tableau, exemple pour coloriser de la ligne 1 à la ligne 20 la plage de ta dernière colonne du tableau
Sub sélection()
Range(Range("A1").End(xlToRight), Range("A1").End(xlToRight)(20, 1)).Interior.ColorIndex = 6
End Sub
L'enregistreur de macro t'écrit de nombreuses lignes inutiles, pour coloriser la dernière colonne d'un tableau variable en prenant référence sur la ligne 1
Sub sélection()
Range("A1").End(xlToRight).EntireColumn.Interior.ColorIndex = 6
End Sub
coloriser une colonne complète va prendre pas mal de ressource de ton système et alourdir ton fichier, limite la colorisation à la fin du tableau, exemple pour coloriser de la ligne 1 à la ligne 20 la plage de ta dernière colonne du tableau
Sub sélection()
Range(Range("A1").End(xlToRight), Range("A1").End(xlToRight)(20, 1)).Interior.ColorIndex = 6
End Sub
Je prefere selectionner toute la colonne malgre tout!
Je dois simplement remplace le code que j'ai cite dans la troisieme colonne par:
Sub sélection()
Range("A1").End(xlToRight).EntireColumn.Interior.ColorIndex = 6
End Sub
Et ca surlignera la derniere colonne ?
Et qu'en est-il pour l'insertion du tableau, celui dans la deuxieme fenetre? Pourrais tu par hasard me proposer un code similaire?
Merci bcp en tout cas !