Excel VBA décaler tableau

Fermé
manu203 - 24 janv. 2008 à 11:27
 manu203 - 24 janv. 2008 à 15:15
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
A voir également:

4 réponses

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
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
essaie

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