Excel VBA décaler tableau

Bonjour,

je débute dans les macro Excel... et j'ai beau chercher sur tous le forums, je ne trouve pas de solutions à mon problème.

Je dispose d'une feuille excel avec 4 tableaux.
Chaque tableau dispose de 4 colonnes (Mois, Mois-1, mois-2, mois-3) et de 3 lignes correspondant à des indicateurs.

J'aimerais créer une macro qui permettrait d'enregister les données de la colonne mois dans une autre feuille (archive de toutes les données et qui ensuite décalerait toutes les données vers la droite et supprimerait les données de la dernère colonne (mois-3) pour tout le temps grader le même tableau de 4 colonnes. Ainsi la colonne mois serait prête pour un nouvel encodage et ainsi de suite chaque fois qu'on appuie sur un bouton auquel on aurait affecté la macro.

Ma macro actuelle n'est pas "belle" et ne fonctionne pas totalement en plus...

Sheets("NE PAS TOUCHER").Select
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Selection.ColumnWidth = 10
Range("B2") = Range("'feuil2'!C4")
Range("B3") = Range("'feuil2'!C5")
Range("B4") = Range("'feuil2'!C6")
Range("B6") = Range("'feuil2'!C10")
Range("B7") = Range("'feuil2'!C11")
Range("B8") = Range("'feuil2'!C12")
Range("B10") = Range("'feuil2'!K4")
Range("B11") = Range("'feuil2'!K5")
Range("B13") = Range("'feuil2'!K10")
Range("B14") = Range("'feuil2'!K11")
Range("B15") = Range("'feuil2'!K12")
Range("B16") = Range("'feuil2'!K13")
Range("B18") = Range("'feuil2'!C17")
Range("B19") = Range("'feuil2'!D17")
Range("B20") = Range("'feuil2'!E17")
Range("B21") = Range("'feuil2'!F17")
Range("B22") = Range("'feuil2'!C18")
Range("B23") = Range("'feuil2'!D18")
Range("B24") = Range("'feuil2'!E18")
Range("B25") = Range("'feuil2'!F18")
Sheets("feuil2").Select
Range("F4:F6").Select = Range("E4:E6")

Pourriez-vous m'aider.

Merci beaucoup

Manu
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. merci pour la réponse... c'est en effet ça qui me posait problème!
    0
    1. essaie

      Feuil2.Range("F4:F6").value = Feuil2.Range("E4:E6").value
      0
      1. Un grand merci pour votre réponse rapide...

        J'avais en effet essayé la commande
        Par bounty206, le jeudi 24 janvier 2008 à 11:40:05

        Feuil2.Range("F4:F6") = Feuil2.Range("E4:E6")

        seulement il me renvoie à chaque fois des données vierges (la colonne F4/F6 ne contient plus de données et dans la feuille "NE PAS TOUCHER, il ajoute bien une colonne mais rien ne s'inscrit dedans).

        Faut-il mettre un format spécial pour les cellules?

        D'avance merci

        Manu
        0
        1. Application.ScreenUpdating = False 'te permet d'effectuer toutes les opérations suivantes sant que l'affichage soit modifié à l'écran

          Sheets("NE PAS TOUCHER").Select
          Columns("B:B").Select
          Selection.Insert Shift:=xlToRight
          Selection.ColumnWidth = 10

          'Ca c'est OK

          Sheets("NE PAS TOUCHER").Range("B2:B4") = Feuil2.Range("C4:C6")
          Sheets("NE PAS TOUCHER").Range("B6:B8") = Feuil2.Range("C10:C12")
          Sheets("NE PAS TOUCHER").Range("B10:B11") = Feuil2.Range("K4:K5")
          Sheets("NE PAS TOUCHER").Range("B13:B16") = Feuil2.Range("K10:K13")
          Sheets("NE PAS TOUCHER").Range("B18:B21") = Feuil2.Range("C17:F17")
          Sheets("NE PAS TOUCHER").Range("B22:B25") = Feuil2.Range("C18:F18")

          Feuil2.Range("F4:F6") = Feuil2.Range("E4:E6")

          'Ca devrait marcher mieux

          Application.ScreenUpdating = True 'ne pas oublier pour continuer à travailler
          0