insertions de lignes et colonnes

PHILIP

XLDnaute Occasionnel
Bonjour à tous

Je viens de commencer en vba . ce que j'aimerai obtenir c'est un fichier qui une fois extradeé d'un logiciel de transport se mette à à jour par le biais d'une mise en page et l'introduction de formules je viens de commencer la mise en page
j'ai extrait le code vba d'une macro enregistrée et j'ai supprimeé divers etapes ma question est: y'a t'il un code + simple qui me permets d'inserer 4 lignes au dessus de la ligne 1 et trois colonne avant la ligne A autrement que dans le code indiqué ci-dessous dessous qui dit que j'ai selectionné la ligne 1 a 5 et j'ai inseré 5 lignes ? de même pour les colonnes (ne faire qu'une ligne de Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove, et une ligne de Selection.InsertShift:=xlDown,CopyOrigin:=xlFormatFromLeftOrAbove)?

Range("A:A,C:C,D:D,E:E,M:M,S:AK").Select
Selection.Delete Shift:=xlToLeft
Columns("E:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("E1").Select
ActiveCell.FormulaR1C1 = "=INT(RC[1]/1000)"
Selection.AutoFill Destination:=Range("E1:E10000"), Type:=xlFillDefault
Range("E1:E10000").Select
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("1:1").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

merci pour votre aide
 

skoobi

XLDnaute Barbatruc
Re : insertions de lignes et colonnes

Bonjour Philip,

voici ton code allégé des Select, très souvent inutile dans VBA:
Code:
Range("A:A,C:C,D,E:E,M:M,S:AK").Delete Shift:=xlToLeft
Columns("E:E").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("E1").FormulaR1C1 = "=INT(RC[1]/1000)"
Range("E1").AutoFill Destination:=Range("E1:E10000"), Type:=xlFillDefault
Columns("A:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("1:5").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
 

PHILIP

XLDnaute Occasionnel
insertions de feuilles

Merci beaucoup Skooby,

j'ai une autre question, je dois ajouter une douzaine de feuilles et les nommer
existe -t-il une maniere differente que d'ecrire ce code 12 fois
Sheets.Add
ActiveSheet.Name = "dhl24h"

Merci pour votre aide
 

PHILIP

XLDnaute Occasionnel
Re : insertions de lignes et colonnes

Merci Skoobi pour ton aide

For next je connais mais je n'ai pas assez de pratique encore pour me debrouiller tous seul

Voici donc les noms qui doivent nommer les feuilles (en fait il y en a 18
dhl24
dhl48
joy24
joy48
joy72
mon24
mon48
mon72
mon96
tnt
tof
Autriche
Allemagne
Italie
Suisse
CZ
DK
PL
encore merci pour votre aide
 

skoobi

XLDnaute Barbatruc
Re : insertions de lignes et colonnes

Re,

Euhhh ça fait 18 feuilles et pas 12 :D:D:p:p.

Voici le code commenté:

Code:
Sub ajoutSh()
Dim ListSh() As Variant
'On inscrit les noms dans un tableau
ListSh = Array("dhl24", "dhl48", "joy24", "joy48", "joy72", "mon24", "mon48", "mon72", "mon96", "tnt", "tof", _
              "Autriche", "Allemagne", "Italie", "Suisse", "CZ", "DK", "PL")
'on boucle du plus petit indice au plus grand indice du tableau
For i = LBound(ListSh) To UBound(ListSh)
'on cré la feuille après la dernière feuille existante
  Sheets.Add after:=Sheets(Sheets.Count)
'on nomme la nouvelle feuille
  ActiveSheet.Name = ListSh(i)
Next
End Sub
 

Discussions similaires