Création colonnes en fonction de la valeur d'une celulle en macroVBA

Marie1212

XLDnaute Nouveau
C'est encore moi !

J'ai de nouveau un petit soucis. Je souhaite qu'excel m'insère automatiquement le nombre de colonnes qui sera inscrit en valeur dans une cellule.
Exemple: Il y a le chiffre 42 dans une cellule, je veux qu'excel par VBA intègre 42 colonnes.

Merci par avance

Marie
 

vgendron

XLDnaute Barbatruc
Re : Création colonnes en fonction de la valeur d'une celulle en macroVBA

Re ;-)

pour répondre à la question: ci dessous un code pour exemple
Code:
Sub Macro2()
'
' Macro2 Macro
'

'
    'récupère le nombre de colonnes à inserer
    NbColo = [A1]
    
    'insere NbColo colonne à partir de la colonne C (3).. par exemple
    Range(Columns(3), Columns(3 + NbColo)).Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

par contre, il faudrait que dans tes prochains post, tu mettes un fichier exemple: plus facile pour répondre et identifier ton besoin

et tu peux rester dans le meme post s'il s'agit du meme projet. ca permettra d'avoir l'historique de ton besoin

PS: pour ce code: j'ai simplement utilisé l'enregistreur de macro et adapté légèrment
je te conseille d'essayer. j'ai souvent découvert que la réponse était bien plus simple que ce que je pensais ;-)
 

Lone-wolf

XLDnaute Barbatruc
Re : Création colonnes en fonction de la valeur d'une celulle en macroVBA

Bonjour Marie, vgendron :)

Un autre exemple

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim NbCol, i As Integer

Application.EnableEvents = False
Application.ScreenUpdating = False
NbCol = Range("a2").value
If Range("a2") <> "" Then
Columns("E:E").Select    'Colonne à partir où celles-ci sont inserées. A modifier
For i = 1 To NbCol
Selection.Insert Shift:=xlToRight
Next i
End If
Application.EnableEvents = True
End Sub



A+ :cool:
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Création colonnes en fonction de la valeur d'une celulle en macroVBA

Bonjour Marie1212, vgendron, Lone-wolf,

une autre solution, à adapter à la réalité du classeur.

Code:
Sub LaMacroquiInseredesColonnes()
 With Worksheets("Feuil2")
 .Range("F1").Resize(, .Range("B3").Value).EntireColumn.Insert Shift:=xlToRight
 End With
End Sub

.Range("F1") = Cellule de la colonne à partir de laquelle insérer
.Range("B3") = Cellule qui contient le Nb de colonnes à rajouter

A+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260