Insertion de ligne decalage de choix de liste combobox
Patty5046
c exactement ca et comme tu dis dur dur
mais ont tien le bon bout juste "global " qui débogue en colonne O après l avoir copier coller en colonne N ça marche
alors question es que ma plage de listbox et juste en colonne N ??
en gros j ai une 100 aine de colonnes donc 100 listbox la plage pour toute c listbox devra etre CT5: CZ42 (largeur hauteur de mon ecran)
Bonsoir
pour global je m'étais effectivement trompé.
Par contre je pense que l'on peut prendre sans problème la colonne N et la colonne O il suffit de le programmer, et de trier pour la facilité de lecture
Par contre si je comprends bien , toutes les données qui se trouvent en colonnes cachées vont passer en colonnes CT à CZ.
C'est important de savoir où elles seront pour la programmation. Car si tu les laisses avant N, cela ne fonctionnera pas correctement
D'autre part CT à CZ, tu n'as que 7 colonnes ...??? Or, il semblerait que tu parles de 100, donc, je verrais plutôt de AA à DV
Les colonnes C à G devront disparaître
Est-ce bien cela ??
Auquel cas tu peux d'ailleurs passer les éléments colonne N en Colonne A ???
Tu me fais souffrir!!
Et un dimanche!!!
Bonne soirée
J'attends de savoir si l'on s'est compris pour m'y remettre....
Patty5046
desole pour la souffrance
1) de la colonne A a CS c est pour les 100 colonnes cachées
2)
donc 100 listbox la plage pour toute c listbox devra etre CT5: CZ42
de CT à CZ c est pour les 100 boutons listbox (ce qui correspond a fers, fruits, motos et voitures la colonne N en ce moment)
ton calvaire arrive au bout je vais te laisser la semaine pour te reposer
ps: marque moi stp ou tu fais la modif a coter du code que je comprenne mieux en vert ( ' modif )
Re
Voici le même fichier avec des explications sur plusieurs lignes de code
Je t'aiderai de nouveau sans problème quand je me serai "nettoyé' la tête...
Tu as déjà des bases.
Eventuellement, renvoie-moi ton fichier quand tu auras commencé à le mettre en place
Bonne soirée.
A bientôt
salut a tous
comment rajouter 2 colonnes 100 = CV , 101 = CW dans ce code
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
lg = target.Row 'récupère la ligne du clic
With Feuil1.Rows("2") 'recherche ligne 2 du contenu de la cellule cliquée
Set Rng = .Find(Cells(lg, 99).Value, LookIn:=xlFormulas) 'colonne 99=CU,100=CV,101=CW
If Not Rng Is Nothing Then
Col = Rng.Column 'récupère la colonne où se trouve l'info
SAISIE (Col)
Exit Sub
End If
End With
MsgBox "Elément non trouvé"
End Sub
faut il modifier autre chose ?
merci
Bonjour
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
lg = target.Row 'récupère la ligne du clic
With Feuil1.Rows("2") 'recherche ligne 2 du contenu de la cellule cliquée
Set Rng = .Find(Cells(lg, 101).Value, LookIn:=xlFormulas) 'colonne 99=CU,100=CV,101=CW
If Not Rng Is Nothing Then
Col = Rng.Column 'récupère la colonne où se trouve l'info
SAISIE (Col)
Exit Sub
End If
End With
MsgBox "Elément non trouvé"
End Sub
Mettre 101 au lieu de 99 ??
Bye
salut Patty5046
si je met 101 ya que la colonne 101 qui marche
moi je veux que 99 ,100 et 101 marche
je veux pas changer la colonne je veux rajouter 2 en plus
en + de 99comment rajouter 2 colonnes 100 = CV , 101 = CW dans ce code
a +
Bonjour
Est-ce que cela te conviendrait ??
Un peu lourd ?? mais cela devrait marcher
Si tu ne trouves pas en 99, recherche en 100 puis en 101.
Dès que tu trouves , tu sors...
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
lg = target.Row 'récupère la ligne du clic
With Feuil1.Rows("2") 'recherche ligne 2 du contenu de la cellule cliquée
Set rng = .Find(Cells(lg, 99).Value, LookIn:=xlFormulas) 'colonne 99=CU,100=CV,101=CW
If Not rng Is Nothing Then
Col = rng.Column 'récupère la colonne où se trouve l'info
SAISIE (Col)
Exit Sub
End If
End With
With Feuil1.Rows("2") 'recherche ligne 2 du contenu de la cellule cliquée
Set rng = .Find(Cells(lg, 100).Value, LookIn:=xlFormulas) 'colonne 99=CU,100=CV,101=CW
If Not rng Is Nothing Then
Col = rng.Column 'récupère la colonne où se trouve l'info
SAISIE (Col)
Exit Sub
End If
End With
With Feuil1.Rows("2") 'recherche ligne 2 du contenu de la cellule cliquée
Set rng = .Find(Cells(lg, 101).Value, LookIn:=xlFormulas) 'colonne 99=CU,100=CV,101=CW
If Not rng Is Nothing Then
Col = rng.Column 'récupère la colonne où se trouve l'info
SAISIE (Col)
Exit Sub
End If
End With
MsgBox "Elément non trouvé"
End Sub
A voir
Bye
- Messages
- 2'415
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Bonjour toutes et tous
@Patty coucou
ce sont les 3 exit sub qui me font peur, j'avais pensé à cela comme toi
Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
lg = target.Row 'récupère la ligne du clic
With Feuil1.Rows("2") 'recherche ligne 2 du contenu de la cellule cliquée
Set Rng = .Find(Cells(lg, 101).Value, LookIn:=xlFormulas) 'colonne 99=CU,100=CV,101=CW
If Not Rng Is Nothing Then
Col = Rng.Column 'récupère la colonne où se trouve l'info
SAISIE (Col)
' Exit Sub
MsgBox "Elément non trouvé 101"
End If
End With
With Feuil1.Rows("2") 'recherche ligne 2 du contenu de la cellule cliquée
Set Rng = .Find(Cells(lg, 99).Value, LookIn:=xlFormulas) 'colonne 99=CU,100=CV,101=CW
If Not Rng Is Nothing Then
Col = Rng.Column 'récupère la colonne où se trouve l'info
SAISIE (Col)
' Exit Sub
MsgBox "Elément non trouvé 99"
End If
End With
With Feuil1.Rows("2") 'recherche ligne 2 du contenu de la cellule cliquée
Set Rng = .Find(Cells(lg, 100).Value, LookIn:=xlFormulas) 'colonne 99=CU,100=CV,101=CW
If Not Rng Is Nothing Then
Col = Rng.Column 'récupère la colonne où se trouve l'info
SAISIE (Col)
' Exit Sub
MsgBox "Elément non trouvé 100"
End If
End With
MsgBox "Elément non trouvé!!!"
End Sub
crdlt,
André
salut Andre13
Patty5046
Eventuellement, renvoie-moi ton fichier quand tu auras commencé à le mettre en place
je dégrossi encore mon classeur et je te le met en ligne
j ai finalement réussi a faire le code avec l enregistreur de macro
ci-joint mon code
Option Explicit
Sub alphabetique_index()
'
' alphabetique_index Macro
'
'
Range("CU5:CU33").Select
Selection.Cut
ActiveWindow.SmallScroll Down:=55
Range("CV63").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-65
Range("CV4:CV33").Select
Selection.Cut
ActiveWindow.SmallScroll Down:=80
Range("CV92").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-90
Range("CW4:CW33").Select
Selection.Cut
ActiveWindow.SmallScroll Down:=110
Range("CV122").Select
ActiveSheet.Paste
ActiveWorkbook.Worksheets("index").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("index").Sort.SortFields.Add Key:=Range("CV122"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("index").Sort
.SetRange Range("CV122:CV151")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=-140
ActiveWindow.SmallScroll Down:=-80
Range("CV63").Select
ActiveWindow.SmallScroll Down:=80
Range("CV63:CV151").Select
ActiveWorkbook.Worksheets("index").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("index").Sort.SortFields.Add Key:=Range("CV63"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("index").Sort
.SetRange Range("CV64:CV151")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=15
Range("CW77").Select
ActiveWindow.SmallScroll Down:=-10
Range("CV63:CV91").Select
Selection.Cut
ActiveWindow.SmallScroll Down:=-85
Range("CU5").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=85
Range("CV92:CV121").Select
Selection.Cut
ActiveWindow.SmallScroll Down:=-120
Range("CV4").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=115
Range("CV122:CV151").Select
Selection.Cut
ActiveWindow.ScrollRow = 122
ActiveWindow.ScrollRow = 121
ActiveWindow.ScrollRow = 118
ActiveWindow.ScrollRow = 114
ActiveWindow.ScrollRow = 89
ActiveWindow.ScrollRow = 68
ActiveWindow.ScrollRow = 46
ActiveWindow.ScrollRow = 33
ActiveWindow.ScrollRow = 30
ActiveWindow.ScrollRow = 26
ActiveWindow.ScrollRow = 24
ActiveWindow.ScrollRow = 23
ActiveWindow.ScrollRow = 22
ActiveWindow.ScrollRow = 21
ActiveWindow.ScrollRow = 17
ActiveWindow.ScrollRow = 16
ActiveWindow.ScrollRow = 15
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 4
Range("CW4").Select
ActiveSheet.Paste
Range("CX18").Select
End Sub
merci et @+
Bonsoir à tous les 2
@exelan:
Oh, que ce code enregistré n'est pas beau.
J'en connais un, s'il passe par là, il va exploser
L'enregistrement macro aide à dégrossir pour comprendre, mais après, il faut essayer de le reprendre
@André
If Not Rng Is Nothing Then
Col = Rng.Column 'récupère la colonne où se trouve l'info
SAISIE (Col)
' Exit Sub
MsgBox "Elément non trouvé 101"
End If
Non, là quand tu fais cela :
If Not Rng Is Nothing
C'est que tu as trouvé l'info, donc pas de message d'erreur et c'est pour cela que je sors, après s'il faut chercher ailleurs en plus effectivement on ne sort pas de la procédure
Quant à Feuil1, effectivement , il faut mettre je crois Index dans son cas, mais c'est parce que j'avais repris le bout de code qu'il m'a mis quand il a demandé pour ses autres colonnes...
Bonne soirée à vous
Salut Patty !
J'en connais un, s'il passe par là, il va exploser
Honnêtement, je me suis demandé comment vous faisiez pour supporter aussi longtemps de travailler sur un tel code...
Bonne soirée !
MFerrand bonsoir
Patty5046
Membre dévoué
Bonsoir à tous ...
Bonsoir MFerrand
Tu t'es reconnu ??? LOL
J'espère entre autres qu'il va virer tous ses scrollbar inutiles ...
Bon courage à tous
On va bientôt se détendre avec l'apéro ....!!!! OUF
Bye
moi aussi j attend l apero
suis très bon dans ce domaine peut être ça va m aider pour le vba
On va bientôt se détendre avec l'apéro ....!!!! OUF
salut a tous
Patty5046 voila mon classeur en etat de marche pour modification ou correction
le classeur marche bien comme ca le 1) et le 2) c est juste pour plus de confort
les codes sont brut a peaufiner apres les modifs
1)
dans la partie Index si je rajoute en CU8 "test"
je voudrais remplir automatiquement dans la partie Saisie en C8 et en M2 ,la prochaine saisie en CU9,C9,N2 ect ect
(si c possible renommer aussi l onglet de la feuille et la cellule 2, a la suite du dernier rentrer dans la liste "Global")
ainsi de suite a chaque nouvelle saisie
2)
dans la partie Index si je clic sur le bouton "alphabetique Index" 3 fonctions a),b),c) (dans la mesure ou l etape "1)" marche)
a) je voudrais classer alphabetiquement les 3 colonnes CU,CV,CW de A a Z (et pas chaque colonne de A a Z)
les cellules CU4 "I"et CU5 "Divers" restent a leur place
b) dans la partie Saisie pour les colonnes C,E,G (idem que Index) ou copier les colonnes Index une fois classees
c) dans la partie Saisie colonnes K a CT classement alphabetique de A a Z de gauche a droite
dans la partie Saisie supprimer le bouton "alphabetique Saisie"
ci-joint fichier "index test"
merci