Bonjour!
Alors voila je vous explique mon problème, j'ai un fichier excel comportant un nom sur la première ligne et toutes les deux colonnes. Par exemple sur A1 il y a "Marie" puis A2,A3 c'est vide, A3 "Julien", A4 et A5 vide... ainsi de suite
J'aimerai pouvoir insérer une nouveau nom parmi ces colonnes et qu'il soit classé dans l'ordre alphabétique tout en conservant la mise en forme: une colonne pleine, 2vides a chaque fois.
Via un sujet un peu similaire à celui ci sur votre site j'ai réussi à récupérer un code qui marchait bien mais il était pour les lignes et ne conservait pas la mise en forme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Private Sub CommandButton1_Click()
With Sheets("Feuil1")
derlign = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & derlign).Value = Me.TextBox1.Value
 
'classement par ordre alphabétique
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With
 
    With Sheets("Feuil1").Sort
        .SetRange Range("A1:A" & derlign)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
J'ai donc essayer de le modifier pour que ça fasse le même travail pour les colonnes et c'est la cata Dans le code que j'ai modifié, j'ai aussi essayer de faire une boucle while qui inserera 2 colonnes vierge toutes les colonnes. En effet le code ci dessus supprimait tout les case vierge. Voici mon code modifié ci dessous. Pouvez vous m'aider svp? Merci beaucoup

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
Sub CommandButton1_Click()
With Sheets("Tabelle1")
dercolu = .Cells(Columns.Count & "1").End(xlRight).Columns + 1
.Range(dercolu & "1").Value = "Thomas"
 
'classement par ordre alphabétique
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With
 
    With Sheets("Tabelle1").Sort
        .SetRange Range("A2:dercolu & 2")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   Dim numero As Variant
   numero = 0
    While numero <= dercolu
 
Cells("1" & numero).Select
Selection.EntireColumn.Insert
        numero = numero + 2
    Wend
 
 
End Sub