Lister une colonne dans un listbox...

Résolu
niewbiesVBA Messages postés 51 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 2 mars 2015 - 4 févr. 2015 à 19:56
niewbiesVBA Messages postés 51 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 2 mars 2015 - 4 févr. 2015 à 21:52
Bonjour à tous,

Donc voilà, j'ai une macro qui me permet, a partir des ligne d'un tableau,de créer des fiche (une fiche par ligne). ces fiches sont numérotée et leur numéro se trouve en colonne G a partir de la ligne 5.

Ce que je voudrais faire, c'est dans une listbox, afficher ces numéros de fiche et, lorsque je clique sur mon bouton "creer fiche", il me créé uniquement les fiches ayant leur numéro sélectionnée dans la listbox.

Comme pourrais-je réaliser cela ?

En vous remerciant

Bonne soirée

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 4/02/2015 à 20:25
Bonjour,
Je vois DEUX questions dans ta discussion.
Laquelle veux-tu traiter (puisqu'une seule question par discussion, je te le rappelle) :
- alimentation de ta listbox ?
ou
- savoir quels sont les articles sélectionnés dans une listbox ?
Il est important (rappel) de ne pas traiter ici deux aspects/problèmes dans une même discussion.

PS : il est également important de savoir si cette listbox se trouve sur une feuille de calcul ou sur un UserForm (pas les mêmes propriétés).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
niewbiesVBA Messages postés 51 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 2 mars 2015
4 févr. 2015 à 20:35
Re-bonsoir,

Je me répond à moi même, car j'ai posté idiotement !!!

Voici ma réponse...

dans un module :

Sub listing_anfm()
Dim listing_anfm
With Sheets("BDD")
listing_anfm = .Range("G5:G" & .Range("G" & Rows.Count).End(xlUp).Row)
End With
creer_fiches.ListBox1.List = listing_anfm
End Su


Puis dans le UserForm_Initialize

Private Sub UserForm_Initialize()
listing_anfm
End Sub
0
niewbiesVBA Messages postés 51 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 2 mars 2015
4 févr. 2015 à 20:35
C'est qu'un partie de la réponse je bloc pour la suite ;)
0
niewbiesVBA Messages postés 51 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 2 mars 2015
4 févr. 2015 à 20:49
Jusque là j'arrive à afficher mes valeur a partir de la ligne G5 dans ma listBox. Le code me permettant de créer les fiches est le suivant :

Sub creer_fiches2()

Dim bdd As Workbook, Fvierge As Workbook
Dim rep As String
Dim Classeurpath As String
Dim Classeurphoto As String
Dim accessibilite, inaccessibilite, accespart, accescom, faiencage, ecaillage, cloqgonf, eclatbeton, betonautre As String
Dim niveau, atelier, SALLE1, SALLE2, betoncom, traversante, nontraversante, noncaracterisable, infiltrante, enreseau As String
Dim sup1mm, inf1mm, emax, emaxsalle2, corrosion, pasdacier, acierapparent, naturelle, rougeatre, blanchatre As String
Dim trace, pastrace, coulure, humidite, seche, efflorescence, aureole As String
Dim nfiche, nb, chemin, salle1_3R, salle1_zone4, salle1_feu, salle1_ext, salle1_123 As String
Dim salle2_3R, salle2_zone4, salle2_feu, salle2_ext, salle2_123, murN, murO, murS, murE, PLANCHER As String
Dim RADIER, PLAFOND, POTEAU, POUTRE, INTERIEUR, remarques As String


'chemin = Sheets("BDD").Range("AZV1").Value (en prévision, ne sert a rien pour le moment)
nb = Sheets("BDD").Range("AZT1").Value

'i est le nombre de fissures, la ligne de départ est 5, le nombre de fissures est n

'ligne_fin = 5 + nb - 1
ligne_fin = Cells.Find("*", Range("B1"), , , xlByRows, xlPrevious).Row


rep = Environ("USERPROFILE") & "\"
Classeurpath = rep & "Documents\HagueInspection\Fiches\Fvierge.xlsm"
Classeurphoto = rep & "Documents\HagueInspection\Photos\RIMG" 'RIMG représente le préfixe de la photo
'Il peut être changer en fonction de l'appareil

Set bdd = ThisWorkbook
Set Fvierge = Workbooks.Open(Classeurpath)


With Fvierge.Worksheets("Fvierge")
For i = 5 To ligne_fin
'ici j'écris le code qui remet toutes les valeurs de BDD vers le Rapport
nfiche = bdd.Worksheets("BDD").Range("G" & i)
Sheets("Fvierge").Copy Before:=Sheets("Fvierge")
ActiveSheet.Name = nfiche

atelier = bdd.Worksheets("BDD").Range("C" & i).Value
niveau = bdd.Worksheets("BDD").Range("D" & i).Value
SALLE1 = bdd.Worksheets("BDD").Range("E" & i).Value
SALLE2 = bdd.Worksheets("BDD").Range("F" & i).Value
accessibilite = bdd.Worksheets("BDD").Range("Q" & i).Value
inaccessibilite = bdd.Worksheets("BDD").Range("R" & i).Value
accespart = bdd.Worksheets("BDD").Range("S" & i).Value
accescom = bdd.Worksheets("BDD").Range("T" & i).Value
faiencage = bdd.Worksheets("BDD").Range("U" & i).Value
ecaillage = bdd.Worksheets("BDD").Range("V" & i).Value
cloqgonf = bdd.Worksheets("BDD").Range("W" & i).Value
eclatbeton = bdd.Worksheets("BDD").Range("X" & i).Value
betonautre = bdd.Worksheets("BDD").Range("Y" & i).Value
betoncom = bdd.Worksheets("BDD").Range("Z" & i).Value
nontraversante = bdd.Worksheets("BDD").Range("AA" & i).Value
traversante = bdd.Worksheets("BDD").Range("AB" & i).Value
noncaracterisable = bdd.Worksheets("BDD").Range("AC" & i).Value
infiltrante = bdd.Worksheets("BDD").Range("AD" & i).Value
enreseau = bdd.Worksheets("BDD").Range("AE" & i).Value
emax = bdd.Worksheets("BDD").Range("AF" & i).Value
emaxsalle2 = bdd.Worksheets("BDD").Range("AG" & i).Value
inf1mm = bdd.Worksheets("BDD").Range("AH" & i).Value
sup1mm = bdd.Worksheets("BDD").Range("AI" & i).Value
corrosion = bdd.Worksheets("BDD").Range("AJ" & i).Value
pasdacier = bdd.Worksheets("BDD").Range("AK" & i).Value
acierapparent = bdd.Worksheets("BDD").Range("AL" & i).Value
naturelle = bdd.Worksheets("BDD").Range("AM" & i).Value
rougeatre = bdd.Worksheets("BDD").Range("AN" & i).Value
blanchatre = bdd.Worksheets("BDD").Range("AO" & i).Value
pastrace = bdd.Worksheets("BDD").Range("AP" & i).Value
trace = bdd.Worksheets("BDD").Range("AQ" & i).Value
coulure = bdd.Worksheets("BDD").Range("AR" & i).Value
humidite = bdd.Worksheets("BDD").Range("AS" & i).Value
seche = bdd.Worksheets("BDD").Range("AT" & i).Value
efflorescence = bdd.Worksheets("BDD").Range("AU" & i).Value
aureole = bdd.Worksheets("BDD").Range("AV" & i).Value
salle1_3R = bdd.Worksheets("BDD").Range("AW" & i).Value
salle1_zone4 = bdd.Worksheets("BDD").Range("AX" & i).Value
salle1_feu = bdd.Worksheets("BDD").Range("AY" & i).Value
salle1_ext = bdd.Worksheets("BDD").Range("AZ" & i).Value
salle1_123 = bdd.Worksheets("BDD").Range("BA" & i).Value
salle2_3R = bdd.Worksheets("BDD").Range("BB" & i).Value
salle2_zone4 = bdd.Worksheets("BDD").Range("BC" & i).Value
salle2_feu = bdd.Worksheets("BDD").Range("BD" & i).Value
salle2_ext = bdd.Worksheets("BDD").Range("BE" & i).Value
salle2_123 = bdd.Worksheets("BDD").Range("BF" & i).Value
murN = bdd.Worksheets("BDD").Range("H" & i).Value
murS = bdd.Worksheets("BDD").Range("I" & i).Value
murO = bdd.Worksheets("BDD").Range("J" & i).Value
murE = bdd.Worksheets("BDD").Range("K" & i).Value
PLANCHER = bdd.Worksheets("BDD").Range("L" & i).Value
RADIER = bdd.Worksheets("BDD").Range("M" & i).Value
PLAFOND = bdd.Worksheets("BDD").Range("N" & i).Value
POUTRE = bdd.Worksheets("BDD").Range("O" & i).Value
POTEAU = bdd.Worksheets("BDD").Range("P" & i).Value
remarques = bdd.Worksheets("BDD").Range("BG" & i).Value
Sheets(nfiche).Range("F6") = nfiche
Sheets(nfiche).Range("E8") = atelier
Sheets(nfiche).Range("P8") = niveau
Sheets(nfiche).Range("E9") = SALLE1
Sheets(nfiche).Range("E10") = SALLE2
Sheets(nfiche).Range("G16") = accessibilite
Sheets(nfiche).Range("J16") = inaccessibilite
Sheets(nfiche).Range("O16") = accespart
Sheets(nfiche).Range("S16") = accescom
Sheets(nfiche).Range("G26") = faiencage
Sheets(nfiche).Range("G28") = ecaillage
Sheets(nfiche).Range("G30") = cloqgonf
Sheets(nfiche).Range("J26") = eclatbeton
Sheets(nfiche).Range("J28") = betonautre
Sheets(nfiche).Range("K30") = betoncom
Sheets(nfiche).Range("G38") = nontraversante
Sheets(nfiche).Range("G40") = traversante
Sheets(nfiche).Range("G42") = noncaracterisable
Sheets(nfiche).Range("J38") = infiltrante
Sheets(nfiche).Range("J40") = enreseau
Sheets(nfiche).Range("P40") = emax
Sheets(nfiche).Range("P42") = emaxsalle2
Sheets(nfiche).Range("J42") = inf1mm
Sheets(nfiche).Range("O38") = sup1mm
Sheets(nfiche).Range("Z26") = corrosion
Sheets(nfiche).Range("Z28") = pasdacier
Sheets(nfiche).Range("Z30") = acierapparent
Sheets(nfiche).Range("G50") = naturelle
Sheets(nfiche).Range("G52") = rougeatre
Sheets(nfiche).Range("G54") = blanchatre
Sheets(nfiche).Range("O50") = pastrace
Sheets(nfiche).Range("O53") = trace
Sheets(nfiche).Range("V50") = coulure
Sheets(nfiche).Range("V52") = humidite
Sheets(nfiche).Range("V54") = seche
Sheets(nfiche).Range("Z50") = efflorescence
Sheets(nfiche).Range("Z52") = aureole
Sheets(nfiche).Range("D62") = salle1_3R
Sheets(nfiche).Range("G62") = salle1_zone4
Sheets(nfiche).Range("J62") = salle1_feu
Sheets(nfiche).Range("O62") = salle1_ext
Sheets(nfiche).Range("R62") = salle1_123
Sheets(nfiche).Range("D67") = salle2_3R
Sheets(nfiche).Range("G67") = salle2_zone4
Sheets(nfiche).Range("J67") = salle2_feu
Sheets(nfiche).Range("O67") = salle2_ext
Sheets(nfiche).Range("R67") = salle2_123
Sheets(nfiche).Range("D102") = murN
Sheets(nfiche).Range("G102") = murS
Sheets(nfiche).Range("J102") = murO
Sheets(nfiche).Range("O102") = murE
Sheets(nfiche).Range("D104") = PLANCHER
Sheets(nfiche).Range("G104") = RADIER
Sheets(nfiche).Range("J104") = PLAFOND
Sheets(nfiche).Range("O104") = POUTRE
Sheets(nfiche).Range("R104") = POTEAU
Sheets(nfiche).Range("C71") = remarques

'Et le code qui mettra les photos au bon endroit

photo1 = Classeurphoto & Format(bdd.Worksheets("BDD").Range("BH" & i).Value, "0000") & ".jpg"
If Dir(photo1) <> "" Then
Sheets(nfiche).Image1.Picture = LoadPicture(photo1)
End If

photo2 = Classeurphoto & Format(bdd.Worksheets("BDD").Range("BI" & i).Value, "0000") & ".jpg"
If Dir(photo2) <> "" Then
Sheets(nfiche).Image1.Picture = LoadPicture(photo2)
End If

photo3 = Classeurphoto & Format(bdd.Worksheets("BDD").Range("BJ" & i).Value, "0000") & ".jpg"
If Dir(photo3) <> "" Then
Sheets(nfiche).Image1.Picture = LoadPicture(photo3)
End If

Next i
End With
End Sub


Je l'ai placer dans un module, j'aimerais maintenant que lorsque je sélectionne une ou plusieur valeur dans ma listbox, il me créer les fiches demander en fonction de ma sélection... et là... je bloc dur...

merci pour votre aide
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 4/02/2015 à 20:57
Donc sur un Userform !
Il y a alors, pour cela, bien plus simple et direct ===>>>
Utilisation de la propriété Rowsource
 ListBox1.RowSource = "BDD!G5:G" & Sheets("BDD").Range("G" & Rows.Count).End(xlUp).Row


Pour ta "suite" : me relire : c'est une autre difficulté et donc une autre discussion à ouvrir.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
niewbiesVBA Messages postés 51 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 2 mars 2015
4 févr. 2015 à 21:42
Bonsoir ucfoutu

Merci pour ta réponse... certe c'est vraiment plus simple (mais c'était quand même fonctionnel ;) ) peut être moins facile à traité par la suite pour mon soucis...

Je traite pourtant le même sujet... mais pas de soucis je poste un nouveau sujet... pourrais-tu m'aider à nouveau ?

Encore merci
0
niewbiesVBA Messages postés 51 Date d'inscription jeudi 15 janvier 2015 Statut Membre Dernière intervention 2 mars 2015
4 févr. 2015 à 21:52
c'est fait... encore merci, je met en résolu...

Une bonne soirée ;)
0
Rejoignez-nous