Visual Basic : Afficher plusieurs factures pour une seule immat [Résolu]

Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
- - Dernière réponse : jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
- 17 juin 2014 à 17:01
Bonjour,

Suite à la création d'une application pour le suivi des véhicules de fonction de mon entreprise je voudrais créer un UserForm destiné aux Factures de chaques véhicules.

Dans un tableau Excel j'ai saisi sur chaque ligne :
Numéro de facture / Immatriculation / Date de la facture / Nature de l'intervention / Kilométrage / Montant / Remarques

Je voudrais que mon UserForm en recherchant la plaque d'immatriculation ressorte toutes les factures correspondant à ce véhicule.

Comment dois-je faire?

Merci à vous !
Afficher la suite 

Votre réponse

8 réponses

Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
0
Merci
Bonjour,

Là encore il va te falloir utiliser la méthode FIND.
(si tu regardes ton aide Excel sur ce mot.. tu y trouveras des exemples.).

Mais au cas où , voici une fonction FIndAll qui te permettra de rechercher TOUTES les factures d'une même immatriculation.
(A adapter à tes besoins bien entendu).

Function FindAll(ByVal sText As String, ByRef oSht As Worksheet, ByRef sRange As String, ByRef arMatches() As String) As Boolean
' --------------------------------------------------------------------------------------------------------------
' FindAll - To find all instances of the1 given string and return the row numbers.
' If there are not any matches the function will return false
' --------------------------------------------------------------------------------------------------------------
On Error GoTo Err_Trap
Dim rFnd As Range ' Range Object
Dim iArr As Integer ' Counter for Array
Dim rFirstAddress ' Address of the First Find
' -----------------
' Clear the Array
' -----------------
Erase arMatches
Set rFnd = oSht.Range(sRange).Find(what:=sText, LookIn:=xlValues, lookAt:=xlPart)

If Not rFnd Is Nothing Then
rFirstAddress = rFnd.Address
Do Until rFnd Is Nothing
iArr = iArr + 1
ReDim Preserve arMatches(iArr)
arMatches(iArr) = rFnd.Row 'rFnd.Address pour adresse complete ' rFnd.Row Pour N° de ligne
Set rFnd = oSht.Range(sRange).FindNext(rFnd)
If rFnd.Address = rFirstAddress Then Exit Do ' Do not allow wrapped search
Loop
FindAll = True
Else
' ----------------------
' No Value is Found
' ----------------------
FindAll = False
End If
' -----------------------
' Error Handling
' -----------------------
Err_Trap:
If Err <> 0 Then
MsgBox Err.Number & " " & Err.Description, vbInformation, "Find All"
Err.Clear
FindAll = False
Exit Function
End If
End Function



Et pour l'utiliser.. par exemple :

Sub Exemple_util_Findall()

Dim arTemp() As String 'variable tableau pour la fonction Findall
Dim ValCherchee as string
ValCherchee="test"
Dim Nom_Feuil as string
Nom_Feuil = "Feuil1"

'---------------------------------------------------------------
bFound = FindAll(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())
'---------------------------------------------------------------

If bFound = True Then
Debug.Print "Nb occurences : " & UBound(arTemp)
For X = 1 To UBound(arTemp)
debug.print arTemp(X)
Next
End If

End sub

http://jr.loucan.fr/e107_plugins/forum/forum_viewtopic.php?11
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
Merci beaucoup de votre aide qui jusqu'à présent a toujours payé !

Pour ce sujet je dois créer dans l'UserForm un textbox dans lequel sera affiché tous les éléments trouvés? ou c'est une zone liste ? Ou encore plusieurs TextBox à la suite ?

J'ai commencé à faire ces lignes :

Private Sub CommandButton5_Click()

Dim recherche As Boolean
recherche = cherchC("Factures", TextBox14.Value)

If recherche = True Then
MsgBox ("Un véhicule à été trouvé !")

Else
MsgBox ("Aucun résultat trouvé")
End If


End Sub
(pour retrouver l'immatriculation)

Sub TextBox15_Findall()

Dim arTemp() As String
Dim ValCherchee As String
ValCherchee = TextBox14
Dim Nom_Feuil As String
Nom_Feuil = "Factures"

'---------------------------------------------------------------
bFound = Findall(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())
'---------------------------------------------------------------

If bFound = True Then
Debug.Print "Nb occurences : " & UBound(arTemp)
For x = 1 To UBound(arTemp)
Debug.Print arTemp(x)
Next
End If

End Sub
(Pour retrouver les factures correspondantes
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
our ce sujet je dois créer dans l'UserForm un textbox dans lequel sera affiché tous les éléments trouvés? ou c'est une zone liste ? Ou encore plusieurs TextBox à la suite ?
Je pense que tu peux faire :

Une ListBox pour afficher la référence des différentes factures
http://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G

Puis des TextBox qui afficheront les informations de la facture sélectionnée dans ta liste.


Et donc, dans ton code.. à quel endroit tu va "alimenter" ta liste...?.. hé bien ça sera dans
Sub TextBox15_Findall()


dans la boucle for :
For x = 1 To UBound(arTemp)
   Debug.Print arTemp(x)

   ' ICI tu mets le code qui va alimenter ta liste.
 
   Next

SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
J'ai adapté avec la ListBox et les TextBox

Sub ListBox1_Findall()

Dim arTemp() As String
Dim ValCherchee As String
ValCherchee = TextBox14
Dim Nom_Feuil As String
Nom_Feuil = "Factures"

'---------------------------------------------------------------
bFound = Findall(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())
'---------------------------------------------------------------

If bFound = True Then
Debug.Print "Nb occurences : " & UBound(arTemp)
For x = 1 To UBound(arTemp)
Debug.Print arTemp(x)

ConsulterFacture.TextBox15.Value = Sheets("Factures").Cells(vcLig, 1)
ConsulterFacture.TextBox16.Value = Sheets("Factures").Cells(vcLig, 2)
ConsulterFacture.TextBox17.Value = Sheets("Factures").Cells(vcLig, 3)
ConsulterFacture.TextBox18.Value = Sheets("Factures").Cells(vcLig, 4)
ConsulterFacture.TextBox19.Value = Sheets("Factures").Cells(vcLig, 5)
ConsulterFacture.TextBox20.Value = Sheets("Factures").Cells(vcLig, 6)
ConsulterFacture.TextBox21.Value = Sheets("Factures").Cells(vcLig, 7)

Next
End If

End Sub


Mais ca ne marche pas encore.

Je veux qu'en entrant l'immatriculation + click sur "rechercher" ça donne la liste des factures correspondantes au véhicule.

Et que ensuite une fois clique sur l'une des factures ça remplisse les champs des textbox correspondants
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
As tu testé l'exemple que je t'avais donné ???
Si tu l'avais fait... tu aurais compris que le Numéro de ligne correspondant à ta recherche se trouve dans le tableau arrTemp(x)

Regardes dans le VBE, dans la fenêtre d'execution, ce que t'affiche la ligne de code :
Debug.Print arTemp(x)

... cette ligne de code t'affiche les N° des différentes lignes qui contiennent un résultat pour ta recherche...
Commenter la réponse de jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
0
Merci
De plus dans ton code... je ne vois rien concernant les ListBox...

Voila ce que tu pourrais faire par exemple :

Imaginons que je prenne comme données :


Et ma Userfor (avec ListBox + TextBox ) ressemble à ça :



Le code utilisé pour le faire est :


Private Sub bouton_FindAll_Click()

Dim arTemp() As String 'variable tableau pour la fonction Findall

Dim ValCherchee As String
ValCherchee = Me.T_immat.Value

Dim Nom_Feuil As String
Nom_Feuil = "Feuil1"

Dim ma_plage As String
    ma_plage = "A1:A1000"

'---------------------------------------------------------------
bFound = FindAll(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())
'---------------------------------------------------------------

'Initialisation de la ListBox
 ListBox1.ColumnCount = 3
 ListBox1.ColumnWidths = "20;40;80"

If bFound = True Then
Debug.Print "Nb occurences : " & UBound(arTemp)
For x = 1 To UBound(arTemp)
Debug.Print arTemp(x)
 '-------------------------
 'remplissage ListBox
 '-------------------------
    'première colonne
    Me.ListBox1.AddItem (arTemp(x))
    'deuxième colonne
    ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets(1).Cells(arTemp(x), 1).Value
    'troisième colonne
    ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets(1).Cells(arTemp(x), 2).Value

Next
End If



End Sub

Private Sub ListBox1_Click()
'Lors du click dans ma liste :
'Remplissage des TextBox :
ligneSelect = ListBox1.ListIndex
 valeur_colonne1 = ListBox1.List(ligneSelect, 0)
 valeur_Colonne2 = ListBox1.List(ligneSelect, 1)
 valeur_Colonne3 = ListBox1.List(ligneSelect, 2)

Me.T_immat_detail.Value = valeur_Colonne2
Me.T_nom_detail.Value = valeur_Colonne3

End Sub



Bien sûr... ça n'est qu'un exemple... à toi de l'adapter à tes besoins.


SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
Je ne dois pas avoir tout saisi dans les lignes ^^

J'ai adapté comme ca :



Private Sub CommandButton5_FindAll_Click()

Dim arTemp() As String 'variable tableau pour la fonction Findall

Dim ValCherchee As String
ValCherchee = Me.TextBox14.Value

Dim Nom_Feuil As String
Nom_Feuil = "Factures"

Dim ma_plage As String
ma_plage = "B1:B1000"

'---------------------------------------------------------------
bFound = Findall(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())
'---------------------------------------------------------------

'Initialisation de la ListBox
ListBox1.ColumnCount = 3
ListBox1.ColumnWidths = "20;40;80"

If bFound = True Then
Debug.Print "Nb occurences : " & UBound(arTemp)
For x = 1 To UBound(arTemp)
Debug.Print arTemp(x)
'-------------------------
'remplissage ListBox
'-------------------------
'première colonne
Me.ListBox1.AddItem (arTemp(x))
'deuxième colonne
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets(1).Cells(arTemp(x), 1).Value
'troisième colonne
ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets(1).Cells(arTemp(x), 2).Value
ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets(1).Cells(arTemp(x), 3).Value
ListBox1.List(ListBox1.ListCount - 1, 4) = Sheets(1).Cells(arTemp(x), 4).Value
ListBox1.List(ListBox1.ListCount - 1, 5) = Sheets(1).Cells(arTemp(x), 5).Value
ListBox1.List(ListBox1.ListCount - 1, 6) = Sheets(1).Cells(arTemp(x), 6).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets(1).Cells(arTemp(x), 7).Value
Next
End If



End Sub

Private Sub ListBox1_Click()
'Lors tu click dans ma liste :
'Remplissage des TextBox :
ligneSelect = ListBox1.ListIndex
valeur_colonne1 = ListBox1.List(ligneSelect, 0)
valeur_Colonne2 = ListBox1.List(ligneSelect, 1)
valeur_Colonne3 = ListBox1.List(ligneSelect, 2)
valeur_Colonne4 = ListBox1.List(ligneSelect, 3)
valeur_Colonne5 = ListBox1.List(ligneSelect, 4)
valeur_Colonne6 = ListBox1.List(ligneSelect, 5)
valeur_Colonne7 = ListBox1.List(ligneSelect, 6)

Me.T_immat_detail.Value = valeur_Colonne2
Me.T_nom_detail.Value = valeur_Colonne3

End Sub



La valeur recherchée est bien "Me.TextBox14.value" ?
De plus, les immatriculations dans la feuille excel sont en colonne B j'ai donc remplacé

Je ne comprend pas la partie arTemp(x) ?
Idem pour "ColumnCount et ColumnWidths"


Merci de votre aide
Commenter la réponse de jordane45
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Dernière intervention
16 juin 2016
0
Merci
bonjour,

tu es sur un prog VBS ou sur excel ?
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
Excel ! :-)
Commenter la réponse de galaxy2009
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
0
Merci
Galaxy : Elle travaille en VBA (excel).


Sandra :

' Nombre de colonne de la listBox
 ListBox1.ColumnCount = 3

'Largeur des colonnes dans la listbox
 ListBox1.ColumnWidths = "20;40;80"


Toi... au total tu as 7 colonnes (autant que de colonnes à traiter dans ton fichier excel)
+1 si, comme moi.. tu veux ajouter le N° de ligne où se trouve l'information.

=> Soit...8 Colonnes au total !


Je ne comprend pas la partie arTemp(x) ?

arTemp est une variable "tableau" .. un ARRAY.

Ce tableau contient la liste de tous les numéros de lignes où le programme a trouvé une immatriculation identique à ta recherche !

SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
D'accord ça j'ai compris maintenant.

Pour
Me.T_immat_detail.Value = valeur_Colonne2
Me.T_nom_detail.Value = valeur_Colonne3

Cela correspond à quoi ?
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
J'ai nommé mes textbox (celles qui sont en bas dans mon exemple).
Donc toi...
c'est tes textbox 1 à 7

Me.Textbox1.Value = valeur_Colonne2
Me.Textbox2.Value = valeur_Colonne3
Me.Textbox3.Value = valeur_Colonne3
Me.Textbox4.Value = valeur_Colonne4
' ...etc...

Commenter la réponse de jordane45
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
0
Merci
Private Sub CommandButton5_FindAll_Click()

Dim arTemp() As String 'variable tableau pour la fonction Findall

Dim ValCherchee As String
ValCherchee = Me.TextBox14.Value

Dim Nom_Feuil As String
Nom_Feuil = "Factures"

Dim ma_plage As String
ma_plage = "B1:B1000"

'---------------------------------------------------------------
bFound = Findall(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())
'---------------------------------------------------------------

'Initialisation de la ListBox
ListBox1.ColumnCount = 8
ListBox1.ColumnWidths = "20;40;80"

If bFound = True Then
Debug.Print "Nb occurences : " & UBound(arTemp)
For x = 1 To UBound(arTemp)
Debug.Print arTemp(x)
'-------------------------
'remplissage ListBox
'-------------------------
'première colonne
Me.ListBox1.AddItem (arTemp(x))
'deuxième colonne
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets(1).Cells(arTemp(x), 1).Value
'troisième colonne
ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets(1).Cells(arTemp(x), 2).Value
ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets(1).Cells(arTemp(x), 3).Value
ListBox1.List(ListBox1.ListCount - 1, 4) = Sheets(1).Cells(arTemp(x), 4).Value
ListBox1.List(ListBox1.ListCount - 1, 5) = Sheets(1).Cells(arTemp(x), 5).Value
ListBox1.List(ListBox1.ListCount - 1, 6) = Sheets(1).Cells(arTemp(x), 6).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets(1).Cells(arTemp(x), 7).Value
Next
End If



End Sub

Private Sub ListBox1_Click()
'Lors tu click dans ma liste :
'Remplissage des TextBox :
ligneSelect = ListBox1.ListIndex
valeur_colonne1 = ListBox1.List(ligneSelect, 0)
valeur_Colonne2 = ListBox1.List(ligneSelect, 1)
valeur_Colonne3 = ListBox1.List(ligneSelect, 2)
valeur_Colonne4 = ListBox1.List(ligneSelect, 3)
valeur_Colonne5 = ListBox1.List(ligneSelect, 4)
valeur_Colonne6 = ListBox1.List(ligneSelect, 5)
valeur_Colonne7 = ListBox1.List(ligneSelect, 6)

Me.TextBox15.Value = valeur_Colonne2
Me.TextBox16.Value = valeur_Colonne3
Me.TextBox17.Value = valeur_Colonne4
Me.TextBox18.Value = valeur_Colonne5
Me.TextBox19.Value = valeur_Colonne6
Me.TextBox20.Value = valeur_Colonne7
Me.TextBox21.Value = valeur_Colonne8



End Sub


Voila ce que j'ai écris.
Lorsque que je clique sur mon bouton rechercher (CommandButton5) rien ne se passe..
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
ListBox1.ColumnWidths = "20;40;80"

Tu as 8 colonnes... il te faut donc définir 8 largeur....

Lorsque que je clique sur mon bouton rechercher (CommandButton5) rien ne se passe.
Mets un POINT d'ARRET sur la ligne :
bFound = Findall(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())

Puis execute le programme en mode PAS à PAS...
et regardes la valeur de tes différentes variables.....
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
Je ne comprends pas .. ^^

A quoi correspondent les largeurs?
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
Dans la listbox..... tu as des colonnes....
Ces colonnes.. tu peux leur donner des dimensions ( la largeur).
Donc.. pour chaque colonne de ta listbox il faut que tu mette une colonne "adaptée"' aux informations qu'elles vont contenir).
Par exemple... pour une immatriculation ( d'une dizaine de caractères au max.) tu ne vas mettre une largeur de 300 ... tu n'as qu'a modifier la largeur de chacune des colonnes via le code
ListBox1.ColumnWidths = "20;40;80;40;40;40;40;40"
Commenter la réponse de SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
0
Merci
J'ai compris pour les dimensions des colonnes ! :-)

Maintenant pour la recherche d'immatriculation lorsque je clique sur "rechercher" rien ne se passe encore une fois. Je ne vois pas d'ou vient l'erreur car quand je clique dessus aucun message n'apparaît..

Private Sub CommandButton5_FindAll_Click()

Dim arTemp() As String 'variable tableau pour la fonction Findall

Dim ValCherchee As String
ValCherchee = ConsulterFacture.TextBox14.Value

Dim Nom_Feuil As String
Nom_Feuil = "Factures"

Dim ma_plage As String
ma_plage = "B1:B1000"

'---------------------------------------------------------------
bFound = Findall(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())
'---------------------------------------------------------------

'Initialisation de la ListBox
ListBox1.ColumnCount = 8
ListBox1.ColumnWidths = "20;20;10;100;20;10;100"

If bFound = True Then
Debug.Print "Nb occurences : " & UBound(arTemp)
For x = 1 To UBound(arTemp)
Debug.Print arTemp(x)
'-------------------------
'remplissage ListBox
'-------------------------
'première colonne
ConsulterFacture.ListBox1.AddItem (arTemp(x))
'deuxième colonne
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Factures").Cells(arTemp(x), 1).Value
'troisième colonne
ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets("Factures").Cells(arTemp(x), 2).Value
ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets("Factures").Cells(arTemp(x), 3).Value
ListBox1.List(ListBox1.ListCount - 1, 4) = Sheets("Factures").Cells(arTemp(x), 4).Value
ListBox1.List(ListBox1.ListCount - 1, 5) = Sheets("Factures").Cells(arTemp(x), 5).Value
ListBox1.List(ListBox1.ListCount - 1, 6) = Sheets("Factures").Cells(arTemp(x), 6).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("Factures").Cells(arTemp(x), 7).Value
Next
End If



End Sub



Ensuite j'ai adapté le remplissage de mes textbox de cette manière (lorsque la premiere partie fonctionnera biensure) :

Private Sub ListBox1_Click()
'Lors tu click dans ma liste :
'Remplissage des TextBox :
ligneSelect = ListBox1.ListIndex
valeur_colonne1 = ListBox1.List(ligneSelect, 0)
valeur_Colonne2 = ListBox1.List(ligneSelect, 1)
valeur_Colonne3 = ListBox1.List(ligneSelect, 2)
valeur_Colonne4 = ListBox1.List(ligneSelect, 3)
valeur_Colonne5 = ListBox1.List(ligneSelect, 4)
valeur_Colonne6 = ListBox1.List(ligneSelect, 5)
valeur_Colonne7 = ListBox1.List(ligneSelect, 6)

ConsulterFacture.TextBox15.Value = valeur_Colonne2
ConsulterFacture.TextBox16.Value = valeur_Colonne3
ConsulterFacture.TextBox17.Value = valeur_Colonne4
ConsulterFacture.TextBox18.Value = valeur_Colonne5
ConsulterFacture.TextBox19.Value = valeur_Colonne6
ConsulterFacture.TextBox20.Value = valeur_Colonne7
ConsulterFacture.TextBox21.Value = valeur_Colonne8



End Sub
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
Bon... on va faire autrement....
On va ajouter des Msgbox....

commence par ça :

Private Sub CommandButton5_FindAll_Click()

Dim arTemp() As String 'variable tableau pour la fonction Findall

Dim ValCherchee As String
ValCherchee = ConsulterFacture.TextBox14.Value

Dim Nom_Feuil As String
Nom_Feuil = "Factures"

Dim ma_plage As String
    ma_plage = "B1:B1000"

msgbox "valcherchee = " & ValCherchee
'---------------------------------------------------------------
bFound = Findall(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())
'---------------------------------------------------------------
msgbox "bfound = " & bFound
'Initialisation de la ListBox
 ListBox1.ColumnCount = 8
 ListBox1.ColumnWidths = "20;20;10;100;20;10;100"

If bFound = True Then
msgbox "Nb occurences : " & UBound(arTemp)
For x = 1 To UBound(arTemp)
Debug.Print arTemp(x)
 '-------------------------
 'remplissage ListBox
 '-------------------------
    'première colonne
    ConsulterFacture.ListBox1.AddItem (arTemp(x))
    'deuxième colonne
    ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Factures").Cells(arTemp(x), 1).Value
    'troisième colonne
    ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets("Factures").Cells(arTemp(x), 2).Value
    ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets("Factures").Cells(arTemp(x), 3).Value
    ListBox1.List(ListBox1.ListCount - 1, 4) = Sheets("Factures").Cells(arTemp(x), 4).Value
    ListBox1.List(ListBox1.ListCount - 1, 5) = Sheets("Factures").Cells(arTemp(x), 5).Value
    ListBox1.List(ListBox1.ListCount - 1, 6) = Sheets("Factures").Cells(arTemp(x), 6).Value
    ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("Factures").Cells(arTemp(x), 7).Value
Next
End If



End Sub
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
Rien ne se passe même avec les msgbox ... Aucun message n'apparaît ..
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
Et bien... cliques tu sur le bon bouton ?????
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
J'ai vérifié le bon bouton est bien CommandButton5 ..
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
Et le TextBox est bien TextBox14
Commenter la réponse de SandraMt
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
0
Merci
Pour info...


Point d'arrêt :


On passe la souris sur une variable pour voir sa valeur :

et si on passe à l'instruction suivante :



On peut aussi utiliser l'instruction Debug.print
=> L'info apparaitra dans la fenêtre d'exécution..

SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
Problème sur mon fichier :

Les lignes ne sont pas surlignées en jaune fluo .. et cela même sur les UserForm qui marchent deja ..

Est-ce lié ?
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
Comme je te l'ai dit... tu n'entres pas dans le code de ton bouton....
=> Tu as bien mis un point d'arrêt dedans ?
Commenter la réponse de jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
0
Merci
J'ai vérifié le bon bouton est bien CommandButton5 ..

Tu peux, dans ta USERFORM, double cliquer sur le bouton en question ?
Arrives tu bien sur le code que tu nous montres ???
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
Merci beaucoup !

Quand je parle des valeurs négatives je parle de ces lignes :

ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Factures").Cells(arTemp(x), 1).Value

ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets("Factures").Cells(arTemp(x), 2).Value
ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets("Factures").Cells(arTemp(x), 3).Value
ListBox1.List(ListBox1.ListCount - 1, 4) = Sheets("Factures").Cells(arTemp(x), 4).Value
ListBox1.List(ListBox1.ListCount - 1, 5) = Sheets("Factures").Cells(arTemp(x), 5).Value
ListBox1.List(ListBox1.ListCount - 1, 6) = Sheets("Factures").Cells(arTemp(x), 6).Value
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("Factures").Cells(arTemp(x), 7).Value
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
A quoi correspond le -1 ?
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
Ben .... à une soustraction..... de 1.

A ton avis ... que peut donner l'instruction : ListBox1.ListCount ??
SandraMt
Messages postés
58
Date d'inscription
jeudi 5 juin 2014
Dernière intervention
2 juillet 2014
-
Il représente un TextBox ? mais je ne comprend pas pourquoi les chiffres -1,2

(ListBox1.ListCount - 1, 2) = Sheets("Factures").Cells(arTemp(x), 2).Value
jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 décembre 2018
-
block>Il représente un TextBox</block>
.... ben non.... comme son nom l'indique... c'est une LISTBOX.
Tu as regardé le lien que je t'ai donné ???

Et donc ListCount .... tu n'arrive pas à voir une similitude avec des mots anglais ? => Liste Count ... qui en français pourrait se traduire par Liste Compter ... bref ... le Nombre d'éléments dans la LISTE...
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.