Excel VBA décaler tableau
manu203
-
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
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:
- Excel VBA décaler tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
- Liste déroulante excel - Guide
- Tableau ascii - Guide
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
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
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
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