Excel VBA décaler tableau

manu203 -  
 manu203 -
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. bounty206
     
    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
  2. manu203
     
    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
  3. bounty206
     
    essaie

    Feuil2.Range("F4:F6").value = Feuil2.Range("E4:E6").value
    0
  4. manu203
     
    merci pour la réponse... c'est en effet ça qui me posait problème!
    0