XL 2013 Sélectionner une ligne sur deux

maval

XLDnaute Barbatruc
Bonjour

J'ai dans mon fichier une liste de nom de communes dans une colonne "D" qui est sur une ligne sur deux et j’aimerai si possible sélectionner ma liste de nom.
Je joint mon fichier qui sera plus explicite.

Je vous remercie d'avance

Max
 

Pièces jointes

  • selectionner.xlsm
    16.2 KB · Affichages: 18

job75

XLDnaute Barbatruc
Bonsoir maval,

Commencez par corriger les valeurs des cellules D12 D58 D220.

Ensuite copiez la plage D4: D366 et collez-la sur E3.

Enfin sélectionnez la colonne E, touche F5 => Cellules => Constantes =>Texte => OK.

Clic droit sur la sélection => Supprimer => Ligne entière.

Bonne nuit.
 

job75

XLDnaute Barbatruc
Bonjour maval,

Voyez le fichier joint avec ce code :
VB:
Sub Restructurer()
Dim tablo, resu(), i&, n&
With [D3].CurrentRegion
    tablo = .Resize(, 2).Formula
    If tablo(1, 2) = "" Then
        ReDim resu(1 To UBound(tablo), 1 To 2)
        For i = 1 To UBound(tablo) Step 2
            n = n + 1
            resu(n, 1) = tablo(i, 1)
            If Len(tablo(i + 1, 1)) > 5 Then tablo(i + 1, 1) = Left(tablo(i + 1, 1), 4) 'ça va bien pour ici
            resu(n, 2) = tablo(i + 1, 1)
        Next
        If n Then .Resize(n, 2) = resu
        .Columns(2).NumberFormat = "00000"
        .Offset(n).Resize(Rows.Count - n - .Row + 1, 2).Clear 'RAZ en dessous
    Else
        ReDim resu(1 To 2 * UBound(tablo), 1 To 1)
        n = -1
        For i = 1 To UBound(tablo)
            n = n + 2
            resu(n, 1) = tablo(i, 1)
            resu(n + 1, 1) = tablo(i, 2)
        Next
        If n Then .Resize(n, 1) = resu
        .Columns(2).Clear 'RAZ
    End If
End With
With ActiveSheet.UsedRange: End With 'actualise les barres de défilement
End Sub
L'intérêt c'est qu'un 2ème clic sur le bouton rétablit la structure antérieure.

A+
 

Pièces jointes

  • Restructurer(1).xlsm
    25.9 KB · Affichages: 5

maval

XLDnaute Barbatruc
Bonjour Job

Et Merci beaucoup, alors je ne sait pas si sa vient de mon ordinateur mais lorsque je clic une fois sur le bouton sa fonctionne très bien, lorsque je clic une deuxième fois sur le bouton sa rétablit bien la structure antérieure mais lorsque je clic une troisième fois fois sur le bouton sa me donne un message d'erreur "L'indice n'appartiens pas à la sélection"
Sur cette ligne :

VB:
If Len(tablo(i + 1, 1)) > 5 Then tablo(i + 1, 1) = Left(tablo(i + 1, 1), 4) 'ça va bien pour ici

Peut être que cela est normal ?
Mais sa m’étonne?

Merci et bonne soirée

Max
 

job75

XLDnaute Barbatruc
Très juste, en bas de la macro il faut remplacer If n Then .Resize(n, 1) = resu par If n > -1 Then .Resize(n + 1, 1) = resu

C'est corrigé dans ce fichier (2).
 

Pièces jointes

  • Restructurer(2).xlsm
    26 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 949
Membres
103 989
dernier inscrit
jralonso