VBA - suppression colonnes

Résolu
chrispr07 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -  
chrispr07 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde,

j'ai ecris un code qui me permet d'inserer des colonnes dans une feuille excel
mais pour cela il me fallait suprimer des colonnes qui m'interessait pas
pour cela j'ai ecris une macro permettant la suppression de colonne



il se trouve qu'il marche bien dans le cas d'une seule fois
mais apres on me parle d'un probleme colonne vide et mon algo n'efface plus la plage que je veux


voici le code


j'arrive pas a voir mon erreur
donc si quelqu'un pouvait jeter un oeil

il ya une partie qui coince au niveau de la suppression de colonne
sa marche pour la premiere fois quand je veux reappliquer sa déconne
l




' Long_Term_Planning_Update Macro
'

'

Dim i As Integer
i = Sheets("MyMenuSheet").Range("E47").Value
'MsgBox i


' Copy and save the current year
Sheets("MT_DD_LR_SA").Select
Sheets("MT_DD_LR_SA").Copy Before:=Sheets("Feuil1")

'Rename this copy
Sheets("MT_DD_LR_SA (2)").Name = "Historic_" & i - 1 & "_" & i
Sheets("MT_DD_LR_SA").Select
'Erase the previous year
Columns("G:BG").Select
Selection.Delete shift:=xlToLeft

' first_Userform1.hide
' Inser_Column_UserForm1.show


'insertion columns

Application.DisplayAlerts = False
Dim x As Integer ' row of month in MyMenuSheet
Dim sem As Integer ' sem is the weeks number
Dim debut, fin, courant As Double
debut = Range("BH3").Column 'Change by what you want
fin = Range("BS3").Column
courant = debut
x = 49

Do Until courant > fin

'Add sem column

sem = Sheets("MyMenuSheet").Range("E" & x).Value
For n = 1 To sem - 1

Columns(courant).Insert shift:=xlToRight, CopyOrigin:=xlFormatFromRightOrBelow

With Range(Cells(3, courant), Cells(3, (courant + sem - 1)))
.ColumnWidth = 4
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With

Next n
' column size
With Range(Cells(3, courant), Cells(3, (courant + sem - 1)))
.ColumnWidth = 4
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
'Columns(courant).insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove




'merge Columns:
Cells(3, courant).Value = Cells(3, (courant + sem - 1)).Value
Range(Cells(3, courant), Cells(3, (courant + sem - 1))).Merge
courant = courant + sem
fin = fin + sem - 1
x = x + 1
Loop
Application.DisplayAlerts = True

merci d'avance pour votre aide


Chrispr07


A voir également:

4 réponses

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour,

Si tu pouvais nous mettre un classeur au lieu d'une liste imbuvable de codes, sans éléments personnels, avec les résultats souhaités expliqués clairement, se serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
0