Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

selectionner une ligne par listbox pour appliquer une macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

DIGGERJACK

XLDnaute Occasionnel
Bonsoir à tous

J'ai une macro qui me permet d'insérer une ligne, de tracer un trait et de mettre une formule dans plusieurs cellules
Je voudrais pouvoir choisir la ligne à insérer à partir d'une listbox ou au pire à partir d'une msgbox
Les coordonnées de la liste sont les suivantes :
A91:A159
il est évident que les coordonnées vont s'accroitre vers le bas ( au delà de 159 ) lorsque j'aurais inséré des lignes

Voici le code :

Sub INSERER()
Rows("91:91").Select ' cette ligne est un exemple
Range("B91").Activate
Selection.Insert Shift:=xlDown
Application.Run "'CP REMPLACEMENT.xls'!AFFICHER"
Range("F91:GK91").Select
Application.Run "'CP REMPLACEMENT.xls'!Correction"
ActiveWindow.ScrollColumn = 186
ActiveWindow.ScrollColumn = 180
ActiveWindow.ScrollColumn = 167
ActiveWindow.ScrollColumn = 122
ActiveWindow.ScrollColumn = 70
ActiveWindow.ScrollColumn = 45
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 6
Range("B91:Y91").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 39
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 39
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Range("Z91:GK91").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 39
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 39
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Application.CommandBars("Borders").Visible = False
ActiveWindow.ScrollColumn = 178
ActiveWindow.ScrollColumn = 161
ActiveWindow.ScrollColumn = 70
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 6
Range("L91").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-6]:RC[-1],""RR"")"
Range("L91").Select
Selection.Copy
Range("S91,Z91").Select
Range("Z91").Activate
ActiveWindow.SmallScroll ToRight:=20
Range("S91,Z91,AG91,AN91,AU91").Select
Range("AU91").Activate
ActiveWindow.SmallScroll ToRight:=22
Range("S91,Z91,AG91,AN91,AU91,BB91,BI91,BP91").Select
Range("BP91").Activate
ActiveWindow.SmallScroll ToRight:=22
Range("S91,Z91,AG91,AN91,AU91,BB91,BI91,BP91,BW91,CD91,CK91,CR91").Select
Range("CR91").Activate
ActiveWindow.SmallScroll ToRight:=30
Range( _
"S91,Z91,AG91,AN91,AU91,BB91,BI91,BP91,BW91,CD91,CK91,CR91,CY91,DF91,DM91,DT91" _
).Select
Range("DT91").Activate
ActiveWindow.SmallScroll ToRight:=30
Range( _
"S91,Z91,AG91,AN91,AU91,BB91,BI91,BP91,BW91,CD91,CK91,CR91,CY91,DF91,DM91,DT91,EA91,EH91,EO91,EV91" _
).Select
Range("EV91").Activate
ActiveWindow.SmallScroll ToRight:=27
Range( _
"S91,Z91,AG91,AN91,AU91,BB91,BI91,BP91,BW91,CD91,CK91,CR91,CY91,DF91,DM91,DT91,EA91,EH91,EO91,EV91,FC91,FJ91,FQ91:FR91,FX91" _
).Select
Range("FX91").Activate
ActiveWindow.SmallScroll ToRight:=15
Range( _
"S91,Z91,AG91,AN91,AU91,BB91,BI91,BP91,BW91,CD91,CK91,CR91,CY91,DF91,DM91,DT91,EA91,EH91,EO91,EV91,FC91,FJ91,FQ91:FR91,FX91,GE91,GL91" _
).Select
Range("GL91").Activate
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.ScrollColumn = 170
ActiveWindow.ScrollColumn = 160
ActiveWindow.ScrollColumn = 147
ActiveWindow.ScrollColumn = 115
ActiveWindow.ScrollColumn = 67
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 6
Range("A91").Select
End Sub

merci pour votre aide

Bonne soirée

Diggerjack
 
Re : selectionner une ligne par listbox pour appliquer une macro

re bonsoir
Ci joint mon dossier incomplet car j'ai du retirer toutes mes macros et 90% de mes tableaux

En espérant que cela puisse vous aider

Bonne soirée
Diggerjack
 
Re : selectionner une ligne par listbox pour appliquer une macro

Bonsoir

voici le fichier

Je voudrais pouvoir insérer une ligne au dessous du nom choisi dans la liste de l'USF ( activé par le bouton INSERER LIGNE)
Ex : choisir "Toi" dans la listbox puis en cliquant sur INSERER LIGNE du USF insérer une ligne en dessous et réaliser le reste de la macro tracer un trait en violet et inserer une formule (cf macro écrite avec l'enregistreur de macro)

Merci pour votre aide

Diggerjack
 

Pièces jointes

Re : selectionner une ligne par listbox pour appliquer une macro

Bonsoir DIGGERJACK et le Forum,

J'ai modifié ton classeur et j'ai mis un bouton en haut "Insérer", tu tests et tu me dis si cela répond à ton besoin.
Bon test.
 

Pièces jointes

Dernière édition:
Re : selectionner une ligne par listbox pour appliquer une macro

Bonsoir Jean Yves ( vive la BZH) et le forum

C'est presque cela mais il ne faut qu'une seule ligne or ta macro me recopie les deux lignes qui précèdent
Ex : si je sélectionne "les uns" en ligne 97, je souhaiterais avoir une seule ligne en dessous c'est à dire la ligne 99

Merci déjà pour ce début de réponse

Diggerjack
 
Re : selectionner une ligne par listbox pour appliquer une macro

Re Bonsoir DIGGERJACK et le forum,

Le problème vient que dans la colonne "A" les cellules sont fusionnées deux par deux, dès que tu fait la sélection, tu as obligatoirement deux lignes. je vais remanier ma macro pour n'en insérer qu'une.

@+
 
Re : selectionner une ligne par listbox pour appliquer une macro

Salut Jean Yves et le forum

Pas mal du tout ta modification

Il me faudrait juste une listbox sans les espaces entre les différents noms
et que la formule suivante soit recopiée toutes les 7 colonnes à partir de la colonne F :ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-6]:RC[-1],""RR"")" (qui me permet de compter le nombre de cellule sur la ligne concernée où les caractères "RR" sont représentés ) jusqu'à la colonne GL

Merci pour l'aide apportée
SI tu pouvais me dépanner sur ces deux demandes ce serait fabuleux
BOnne soirée
Diggerjack
 
Re : selectionner une ligne par listbox pour appliquer une macro

Bonsoir DIGGERJACK et le forum,

Peux-tu remplir un peu la grille que je vois comment elle sera pour y mettre le code après, je vais suivre ce fil.

Bonsoir et merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
22
Affichages
3 K
  • Question Question
XL pour MAC Recherche date
Réponses
5
Affichages
2 K
Réponses
6
Affichages
1 K
Réponses
13
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…