Re : Contenu listbox a plusieurs lignes et colonnes vers feuille en une seule ligne
Re,
As tu essayé le fichier précédent ?
Désolé, je ne vois pas le pb...
Tu nous expliques vouloir récupérer la ligne dans la listbox2 alors que les données sont déjà affichée dans la lisbox1 !
Faut-il vraiment insister pour enfin voir poindre les fils qu'on aura réussi à vous tirer du nez !
Bref, expliques nous clairement le fonctionnement de ce machin comme dirait le grand
A+
kjin
Re : Contenu listbox a plusieurs lignes et colonnes vers feuille en une seule ligne
Re,
c'est un fichier exemple, avec des données bidon,
sur la listbox1 les donnée d'ouvrages avec désignation, unité, cout moyen, cout total cet,
chaque ligne de la listbox1 correspond a un ouvrage, chaque ligne de la listbox1 aura a partir de la colonne H les sous détail composant cet ouvrage.
quand je sélectionne une ligne en listbox1 la valeur (implantation 4, 6 ou 8 axes devra sélectionner la ligne de la colonne H avec toutes les composantes soit 7 colonnes a partir de la colonne H et par tranches de 7 colonnes mais a l'inverse du code que tu a écris plus haut, pour afficher le résultat en list sur la listbox2.
Je sais et je m'excuse, pas facile a expliqué.
Pour ton fichier précédent oui j'ai essayer, mais les contrôles active x ne fonctionnent pas sous mac.
pour exemple de ton fichier
tu a 3 tranche de 1 A 7 il faut afficher dans la listbox la tranche complète en une ligne de la listbox, la tranche 2 dans une deuxième lignede la listbox, et la tranche 3 dans une 3 eme ligne de la listbox et ainsi de suite. (Chaque tranche ayant une seule ligne H1, AB1)
Édit. Une précision non négligeable et je suis impardonnable, il faut mettre sur la listbox2 en colonnes les tranches(7)
Re : Contenu listbox a plusieurs lignes et colonnes vers feuille en une seule ligne
Bonsoir a tous,
ayant été en déplacement toute la semaine, je n'ai pas pu poursuivre mon projet.
Donc la je reviens vers vous pour avoir une aide sur mon projet, j'ai joint mon fichier avec des commentaires pour ilustré mon souhait, j'espère que cette fois ci ce sera plus clair pour vous pour m'aider. Userform et listbox deja créée
Dans le cas contraire je jette l'éponge et je vous importune plus avec ça.
Merci d'avance
Cordialement
Abtony
sur le fichier excel faire afficher les commentaire s'il ne sont pas visible
Re : Contenu listbox a plusieurs lignes et colonnes vers feuille en une seule ligne
Bonsoir,
Désolé, mais je ne comprends toujours pas le but de la manoeuvre donc avec le peu que j'en retiens...
Code:
Private Sub ListBox1_Change()
With ListBox2
.Clear
x = ListBox1.ListIndex + 1
For i = 9 To 24 Step 5
.AddItem Cells(x, i)
For j = 1 To 4
ListBox2.List(.ListCount - 1, j) = Cells(x, i + j)
Next
Next
End With
End Sub
click sur listbox1 pour alimenter listbox2
A+
kjin
et pourquoi pas 29, 34, ... ?
Si... tu veux prévoir plus de 4 articles, essaie
Code:
Private Sub ListBox1_Click()
Dim Dc As Byte, L As Byte, C As Byte, j As Byte
Dc = Cells(1, Columns.Count).End(xlToLeft).Column
L = ListBox1.ListIndex + 1
With ListBox2
.ColumnCount = 5
.Clear
For C = 1 To Dc Step 5
.AddItem Cells(L, 8 + C)
For j = 9 To 12
.List(.ListCount - 1, j - 8) = Cells(L, j + C)
Next
Next
End With
End Sub
pour l'autre demande simple mais qui demande du boulot, tu devrais trouver des exemples dans ce forum.
Re : Contenu listbox a plusieurs lignes et colonnes vers feuille en une seule ligne
Bonsoir SI...,
Merci pour ton code, je viens de l'essayer et j'avoue que c'est pas mal.
Pour les exemples sur le forum pour l'autre demande j'ai déjà cherché ainsi que sur le net excellabo developpeur.net etc, et je ne trouve rien qui puisse correspondre.
c'est pour cette raison que je poste sur le forum.
Je suis conscient que ça représente du boulot, et je remercie les personnes qui se dévouent a aider les autres et tout ça bénévolement.
Abtony
edit: simple pas tant que ca, car il faut garder le principe d'ajout comme le premier code a Kjin a savoir en ligne
La ligne a partir de la colonne (A) correspond a un ouvrage et a partir de la colonne (I) les articles par tranches de 5 colonnes sur la même ligne On appelle ça les composant d'ouvrage ou sous détails.
D'ailleurs je n'arrive pas a adapté le premier code a Kjin pour que ça sauvegarde le contenu de la listbox2 a partir de la colonne (I)
@Si...tu relis le fil, tu constateras rapidement que j'essaie en vain de comprendre de quoi il s'agit !
@abtony, si tu ne fais pas l'effort nécessaire pour expliquer clairement, cette fois c'est moi qui jette l'éponge
...à l'ouverture du formulaire, tu charges la listbox1 oui non avec quoi, combien de colonnes
...tu click sur la listbox1, il se passe quoi ou comment
...tu click sur la listbox2, il se passe quoi ou comment, combien de colonnes
...et les textbox servent à quoi
A+
kjin
Re : Contenu listbox a plusieurs lignes et colonnes vers feuille en une seule ligne
Bonsoir Kjin, SI..., Le forum,
Tout d'abord Kjin je tiens a m'excuser pour ma première demande de ce fil, qui à manqué de réflexion de ma part sur le résultat recherché.
Ne jette pas l'éponge STP, je vais essayer d'être le plus clair possible dans mon explication, et le reste est dans le fichier joint .
1/ a l'ouverture de l'userform du fichier joint ca charge la listbox1 avec ce code
VB:
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 7
tableau = ActiveSheet.Range("A1:G" & ActiveSheet.Range("A65536").End(xlUp).Row): ListBox1.List = tableau
End Sub
Donc ça c'est OK pas de soucis.
2/ Un clic sur une ligne de la listbox1, charge la listbox2 avec les articles correspondant a cet ouvrage
ce code est de SI... car on est pas limité par le nombre d'articles a affiché dans les colonnes.
ton code lui s'arreta a 24 et est excellent aussi.
VB:
Private Sub ListBox1_Click()
Dim Dc As Byte, L As Byte, C As Byte, j As Byte
Dc = Cells(1, Columns.Count).End(xlToLeft).Column
L = ListBox1.ListIndex + 1
With ListBox2
.ColumnCount = 5
.Clear
For C = 1 To Dc Step 5
.AddItem Cells(L, 8 + C)
For j = 9 To 12
.List(.ListCount - 1, j - 8) = Cells(L, j + C)
Next
Next
End With
End Sub
ca c'est OK aussi pas de soucis.
3/ Ce que je souhaite maintenant, c'est de pouvoir ajouter des articles en listbox2, et a la suite des autres en colonnes comme sur la feuille excel.
4/ Et pour finir Pouvoir au besoin modifier un article existant en listbox2 depuis la saisi des textbox de 1 a 5.
(augmentation du prix des matériaux ou autre raison)
Récapitulatif:
Listbox1 OK
plage de A:G et dernière ligne (Correspond a des ouvrages, avec la désignation, unité, prix etc)
Llistbox2 OK
plage de la sélection listbox1, à partir de la colonne (I:M, N:R, S:W, X:AB) tout les articles que compose cet ouvrage en 5 colonnes (Désignation, Unité, Quantité, prix Unitaire, prix total)
Voila j'espère avoir été le plus clair possible, un fichier est joint pour mieux comprendre.
Re : Contenu listbox a plusieurs lignes et colonnes vers feuille en une seule ligne
Bonsoir,
Ouh bé p...étard, ce n'était pas si compliqué, s'agit qu'on parle le même language
Bon je m'énerve un peu qq fois, mais avec l'âge je deviens dure d'oreilles
Je regarde plus tard, ou SiSsi... passe par là...
A+
kjin
la seule chose à laquelle tu n'as fait attention c'est la possibilité d'avoir plus de 10 articles, sinon nos codes se ressemblent comme 2 flocons de neige (par ces temps de froidure).
@abtony : voilà un exemple de ce que tu peux faire. Si... cela te convient, tu peux intercaler le même ajout pour pouvoir tripatouiller la première liste.
Re : Contenu listbox a plusieurs lignes et colonnes vers feuille en une seule ligne
Bonsoir Kjin, SI..., le forum
On va y arriver, moi aussi l'âge n'arrange pas les choses LOL
SI... c'est cool, très rapide et c'est exactement ça que je souhaite.
Par contre lors d'un ajout après la dernière colonne soit AB on saute d'une colonne, donc lors du rafraîchissement de l'userform cet ajout n'apparait pas en listbox2
Abtony
Edit:
certains ouvrages n'ont pas encore d'articles, ils va falloir que je les créée donc si la colonne (I) est vide l'article est ajouter a la suite du dernier article de la dernière colonne et de la dernière ligne ligne.
Edit 2:
Je viens de voir que sur la listbox2, si on sélectionne la première ligne ok
si on sélectionne la deuxième seul la désignation change dans les textbox, pas le reste
Edit 3:
Lors d'un ajout ou d'une modification les données de la listbox ne vont pas au bon endroit, la cause (trois ouvrages presque identique, Implantation de bâtiment 4 axes, implantations de bâtiment 6 axes, implantation de bâtiment 8 axes; ils ont tous les mêmes articles seules les quantité changes et bien sur le prix) ça facilite pas la chose mais on est prêt du but !
Re : Contenu listbox a plusieurs lignes et colonnes vers feuille en une seule ligne
Re Kjin, SI...,
Voila j'ai décortiquer le code a SI... et j'ai pu résoudre tout les point cité en Edit post précédent.
voiçi le code modifier
VB:
Dim Dl As Long, Dc As Byte
Dim Col As Byte
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 7
Dl = Cells(Rows.Count, 1).End(xlUp).Row
Dc = Cells(1, Columns.Count).End(xlToLeft).Column
tableau = Range("A1:G" & Dl)
ListBox1.List = tableau
End Sub
Private Sub ListBox1_Click()
Dim L As Byte, C As Byte, j As Byte
L = ListBox1.ListIndex + 1
With ListBox2
.ColumnCount = 5
.Clear
For C = 1 To Dc Step 5
Col = 7 + C
.AddItem Cells(L, Col)
For j = 8 To 11
.List(.ListCount - 1, j - 7) = Cells(L, j + C)
Next
Next
End With
For C = 1 To 5
Me("T" & C) = " "
Next
End Sub
Private Sub ListBox2_Click()
T1 = ListBox2.Value
For C = 2 To 5
Me("T" & C) = ListBox2.List(ListBox2.ListIndex, C - 1)
Next
CommandButton1.Caption = "Corriger"
End Sub
Private Sub CommandButton1_Click()
If CommandButton1.Caption = "Corriger" Then
li = ListBox1.ListIndex + 1
On Error Resume Next
Col = Rows(li).Find(ListBox2).Column - 1
Else
li = ListBox1.ListIndex + 1
On Error Resume Next
Col = Rows(li).Find(ListBox2).Column - 1
'On Error Resume Next
'Col = Dc: li = Cells(Rows.Count, Col).End(xlUp).Row + 1
End If
For C = 1 To 5
Cells(li, Col + C) = Me("T" & C)
Next
Unload Me: UserForm1.Show
End Sub
Voila tout fonctionne correctement pour l'instant. Même si le dernier code "Corriger, Ajouter" est identique, mais ils remplissent bien leurs fonctions "Corriger ligne listbox2 sélectionné" "Ajouter Ligne listbox1 sélectionné"
Merci infiniment a vous deux, surtout de ne pas avoir jeter l'éponge