Faciliter la macro

Bonjour à tous,
Ci-dessous il y a un bout de macro qui a été enregistré il y a fort longtemps sans code vb et pas par moi-même, comment réussir à rendre ce code plus propre et plus simple.
Cela m'as l'air redondant et surtout casse-gueule.
Merci de vos réponses et bonne journée à vous !

Voila le bout en question :

Columns("R:T").Select
        Selection.Delete Shift:=xlToLeft
        Columns("D:D").Select
        Application.CutCopyMode = False
        Selection.Delete Shift:=xlToLeft
        Columns("H:H").Select
        Selection.Delete Shift:=xlToLeft
        Columns("G:G").Select
        Selection.Delete Shift:=xlToLeft
        Columns("H:H").Select
        Selection.Delete Shift:=xlToLeft
        Columns("J:J").Select
        Selection.Delete Shift:=xlToLeft
        Columns("J:K").Select
        Selection.Delete Shift:=xlToLeft
        Columns("K:K").Select
        Selection.Delete Shift:=xlToLeft
        Columns("M:M").Select
        Selection.Delete Shift:=xlToLeft
        Columns("N:P").Select
        Selection.Delete Shift:=xlToLeft
        Columns("O:Q").Select
        Selection.Delete Shift:=xlToLeft
        Columns("T:T").Select
        Selection.Copy
        Range("ax1").Select
        ActiveSheet.Paste
        Columns("R:R").Select
        Selection.Copy
        Range("ay1").Select
        ActiveSheet.Paste
        Columns("R:U").Select
        Selection.Delete Shift:=xlToLeft
        Columns("S:Z").Select
        Selection.Delete Shift:=xlToLeft
        Columns("T:U").Select
        Selection.Delete Shift:=xlToLeft
        Columns("X:Z").Select
        Selection.Delete Shift:=xlToLeft
        Columns("Z:AE").Select
        Selection.Delete Shift:=xlToLeft
        Columns("D:D").Select
        Selection.Cut
        Columns("A:A").Select
        Selection.Insert Shift:=xlToRight
        Columns("S:S").Select
        Selection.Cut
        Columns("B:B").Select
        Selection.Insert Shift:=xlToRight
        Columns("H:H").Select
        Selection.Cut
        Columns("C:C").Select
        Selection.Insert Shift:=xlToRight
        Columns("G:H").Select
        Selection.Cut
        Columns("D:D").Select
        Selection.Insert Shift:=xlToRight
        Columns("I:J").Select
        Selection.Cut
        Columns("F:F").Select
        Selection.Insert Shift:=xlToRight
        Columns("K:K").Select
        Selection.Cut
        Columns("H:H").Select
        Selection.Insert Shift:=xlToRight
        Columns("L:L").Select
        Selection.Cut
        Columns("K:K").Select
        Selection.Insert Shift:=xlToRight
        Columns("Q:R").Select
        Selection.Cut
        Columns("M:M").Select
        Selection.Insert Shift:=xlToRight
        Columns("S:S").Select
        Selection.Cut
        Columns("P:P").Select
        Selection.Insert Shift:=xlToRight
        Columns("W:Z").Select
        Selection.Cut
        Columns("R:R").Select
        Selection.Insert Shift:=xlToRight
        Range("A1").Select

2 réponses

  1. Contributeur
    Bonjour,

    commence par remplacer:

    Columns("R:T").Select
            Selection.Delete Shift:=xlToLeft


    par

    Columns("R:T").Delete Shift:=xlToLeft
           


    pareil pour la suite

    Voilà

    1. Bonjour, quand je fait cela, j'ai pas le bon résultat escompté
      Tu aurais pas une idée en VBA pou recommencer tout mon code et dans ce dernier sélectionner que les colonnes que je veux pour éviter de supprimer comme ça par la suite ?
      Car au départ j'ai un tableau avec de nombreuses colonnes avec des infos inutiles et pas dans le bon ordre pour qu'au final j'arrive sur un tableau avec peu de colonnes, le bon ordre des colonnes!
      Merci !
      1. Contributeur
        Ce que tu demandes, il n'y a que toi qui sache ce que tu veux!
      2. @cs_Le PivertJe ne sais pas comment faire un code qui me permet de copier puis coller que les colonnes que je souhaite!
      3. Contributeur
        Tu as l'enregistreur de macro pou t'aider.

        Copier et coller où?
      4. @cs_Le PivertOui je l'ai mais j'aimerai faire sans pour optimiser mon code.
        C'est une extraction de SAP que je fait dans un premier temps puis ensuite je copie colle tout cela sur une feuille Excel, mais toutes les colonnes que j'extrait ne m'intéresse pas, j'aimerai en supprimer certaines (comme cela est fait plus haut avec l'enregistreur de macro) OU pouvoir sélectionner que ce que je souhaite de base sans avoir a supprimer après! Avez-vous compris ce que je souhaite ?
      5. Contributeur
        comme ceci:

        Option Explicit
        Private Sub CommandButton1_Click()
        Dim resultat As String
            resultat = InputBox("Quelle colonne voulez-vous supprimer?", "Suppression colonne", "A") 'La variable reçoit la valeur entrée dans l'InputBox
            If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat
                Columns(resultat & ":" & resultat).Delete Shift:=xlToLeft
            End If
         End Sub
        


        Voilà