• Initiateur de la discussion Initiateur de la discussion Bruce68
  • Date de début Date de début

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 !

Bruce68

XLDnaute Impliqué
Bonjour à Tous

J'ai une base de données ou je veux ajouter OK aux factures payées
Pour cela j 'utile un UserForm et une ListiView pour rechercher les factures N'ayant pas= Ok
Ensuite je double Clic sur une Ligne et et 2° UserForm s'ouvre avec tous les renseignements de la ligne et là je peux mettre OK et c'est là que cela ne fonctionne pas l' adresse de la ligne ne fonctionne pas.
Si quelqu'un pouvait me faire fonctionner la macro et me dire pourquoi cela ne fonctionne pas.

Je vous remercie de votre aide
 

Pièces jointes

Re : Modificaton Ligne

Bonjour

Ci dessous les modifications à apporter
Ajouter une clé
Code:
Private Sub UserForm_Initialize() ' initialise la ListView Factures
.................................................
 ' Boucle sur toutes les lignes
            ' Remplir la première colonne
            ListView1.ListItems.Add , "K" & I, Range("B" & I).Value  'N° Clients
            'Remplissage colonnes 2 à 9

Déclaration : Dim lig As Long

Code:
Private Sub UserForm_Initialize() 'Initialise l UserForm Paiement Facture
  
    With UserForm1.ListView1
        ' Nom
   ...................................................
        TextBox1 = .ListItems(.SelectedItem.Index).SubItems(9)  'Réglé
    
            
    lig = Mid(.ListItems(.SelectedItem.Index).Key, 2, 50)
 End With
End Sub

Lig contient le numéro de ligne concernée.

A tester

JP
 
Re : Modificaton Ligne

Bonsoir jp14
Merci pour la réponse.
Avec certaines modif cela fonctionne
J'ai supprimé certte ligne car elle effaçait le Ok du textBox="TextBox1 = .ListItems(.SelectedItem.Index).SubItems(9) 'Réglé"
et cela fonctionne quand meme.
Je vouidrais des precisions sur ces 2 lignes: ListView1.ListItems.Add , "K" & I, Range("B" & I).Value 'N° Clients = pourquoi avoir rajouté: "K"& I.

lig = Mid(.ListItems(.SelectedItem.Index).Key, 2, 50) = pourquoi ,2, 50 dans cette ligne de code il est possible de récupérer la lettre de la colonne et le N° de ligne.

Merci pour l'aide
 
Re : Modificaton Ligne

Bonjour

Dans une listbox on peut utiliser la propriété ListIndex pour trouver le numéro de ligne, dans une listview on peut trier les données en cliquant sur la colonne, il n'y a plus d'ordre. Il faut donc mémoriser dans la ligne de la listview le numéro de ligne.
La syntaxe pour écrire dans une ligne d' une listview est
ListView1.ListItems(1).ListSubItems.Add [Index], [Key], [Text], [ReportIcon], [TooltipText]
Key est une zone caché, on peut l'utiliser pour stocker des informations.
Key n'accepte pas les valeurs numériques d'ou "K" & numéro de ligne.

MID permet de récupérer la valeur numérique qui commence à la deuxième position dans la chaine de caractères, il faut indiquer la longueur à récupérer, j'anticipe sur le nombre de lignes dans ecxel.

JP
 
Dernière édition:
- 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
5
Affichages
182
  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
498
Réponses
2
Affichages
152
Réponses
4
Affichages
227
Retour