Bonjour,
Je vous solicite car j'aimerais comprendre un problème que j'ai sous VBA et que je ne m'explique pas.
Ce que je souhaite faire :
Un tableau dans une feuille doit être copier dans une autre feuille
dans cette autre feuille je veux réaliser un trie par ordre croissant sur une colonne B
Pour que mon code puisse vivre longtemps sans maintenance je veux pouvoir modifier le nom de mes colonnes ainsi que leur positions.
J'ai donc opté pour nommé la colonne B :"B" afin de pouvoir être sur de récupérer les informations concernant cette colonne qu'elle que soit sa position et son nom. Dans le futur elle sera toujour la plage nommée "B"
Enfin je récupére le numéro de colonne de la plage B afin de pouvoir réaliser le trie sur la bonne colonne dans la nouvelle feuille une fois le tableau copié. l'emplacement etant suceptible de changer je recalcul à chaque sa position
Pour un mystère que je ne m'explique pas mon code fonctionne parfaitement en l'état mais dés que je change le nom de la colonne il ne fonctionne plus. Pourtant je ne fais plus référence au nom de la colonne dans mon code ci-dessous mais uniquement à la plage nommée "B". encore plus troublant en forcant le numéro dans le code à "2" par exemple cela ne fonctionne plus
Je vous joint
Si ma présentation n'est pas sufisament claire n'hésitez pas à me le dire pour que je puisse
d'avance merci et très bon week en à tous
Je vous solicite car j'aimerais comprendre un problème que j'ai sous VBA et que je ne m'explique pas.
Ce que je souhaite faire :
Un tableau dans une feuille doit être copier dans une autre feuille
dans cette autre feuille je veux réaliser un trie par ordre croissant sur une colonne B
Pour que mon code puisse vivre longtemps sans maintenance je veux pouvoir modifier le nom de mes colonnes ainsi que leur positions.
J'ai donc opté pour nommé la colonne B :"B" afin de pouvoir être sur de récupérer les informations concernant cette colonne qu'elle que soit sa position et son nom. Dans le futur elle sera toujour la plage nommée "B"
Enfin je récupére le numéro de colonne de la plage B afin de pouvoir réaliser le trie sur la bonne colonne dans la nouvelle feuille une fois le tableau copié. l'emplacement etant suceptible de changer je recalcul à chaque sa position
Pour un mystère que je ne m'explique pas mon code fonctionne parfaitement en l'état mais dés que je change le nom de la colonne il ne fonctionne plus. Pourtant je ne fais plus référence au nom de la colonne dans mon code ci-dessous mais uniquement à la plage nommée "B". encore plus troublant en forcant le numéro dans le code à "2" par exemple cela ne fonctionne plus
Je vous joint
Code:
Sub extrait()
Dim num_col As Integer
num_col = Range("B").Column
Sheets("Suivi").Range("A1:D7").Copy
Sheets("Result").Select
Sheets("Result").Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("result").Range("A2") = num_col
ActiveSheet.Range("A3").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets("Result").AutoFilter.Sort.SortFields.Add Key:=Range(Cells(3, num_col)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Result").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWorkbook.Worksheets("Result").AutoFilter.Sort.SortFields.Clear
End Sub
Si ma présentation n'est pas sufisament claire n'hésitez pas à me le dire pour que je puisse
d'avance merci et très bon week en à tous