VBA - suppression colonnes

Résolu/Fermé
chrispr07 Messages postés 47 Date d'inscription mercredi 6 août 2014 Statut Membre Dernière intervention 2 juillet 2015 - Modifié par 00lina00 le 23/08/2014 à 01:39
chrispr07 Messages postés 47 Date d'inscription mercredi 6 août 2014 Statut Membre Dernière intervention 2 juillet 2015 - 25 août 2014 à 22:50
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 août 2014 à 09:48
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