Message erreur listebox
Résolu
icephenix
Messages postés
60
Statut
Membre
-
icephenix Messages postés 60 Statut Membre -
icephenix Messages postés 60 Statut Membre -
Bonjour,
j'ai ce code sur un fichier excel
il fonctionne parfaitement mais quand je veux le copier dans un autre fichier excel le message d'erreur " compile Error variable not defined" et ca sélectionne listebox1 .
je suis coincé merci de votre aide
j'ai ce code sur un fichier excel
Option Explicit
' Feuille BONS
Const lideb = 10 ' premiere ligne
Const co = "E" ' colonne à cliquer
' Feuille "tableaux"
Const FD = "Feuil1" ' nom de la feuille
Const coD = "A" ' colonne montant
Const coE = "B" ' colonne libelle
Const ht = 12.75 ' hauteur d'une ligne de la listbox - à adapter
' cette fonction renvoie l'adresse du tableau - s est le contenu de la cellule cliquée
Public Function AdrPlage(s As String) As String
Dim obj As Object, li1 As Long, li2 As Long, lifin As Long
' cherche s dans la colonne coD de la feuille FD
Set obj = Sheets(FD).Columns(coD).Find(s, , , xlWhole)
' si s non trouvé renvoie une chaine vide
If obj Is Nothing Then
AdrPlage = ""
' sinon
Else
' li1 est la ligne dans FD où s a été trouvé
li1 = obj.Row
' lifin est la dernière ligne non vide de la colonne coD (feuille FD)
lifin = Sheets(FD).Range(coD & Rows.Count).End(xlUp).Row
' recherche de la ligne de fin du tableau : li2
' initialisation de li2
li2 = li1 + 1
' tant que li2<= lifin et que la cellule (li2,coD) n'est pas vide on in cremebnte li2
While Sheets(FD).Range(coD & li2) <> "" And li2 <= lifin
li2 = li2 + 1
Wend
' la plage commence en ligne li1+1 et se finit en li2 ( sur 2 colonnes coD et coE)
AdrPlage = Sheets(FD).Range(coD & li1 + 1 & ":" & coE & li2).Address
End If
End Function
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim des As String, adr As String, nbli As Long, lifin As Long
' si la cellule cible est en colonne co
If Not Intersect(Target, Columns(co)) Is Nothing Then
' si listbox1 est visible, on la cache et on quitte sans rien faire
If ListBox1.Visible Then ListBox1.Visible = False: Target.Offset(1, 0).Select: Exit Sub
' si la ligne cliquée est avant lideb on quiite sans rien faire
If Target.Row < lideb Then Exit Sub
' sinon
' des = contenu de la cellule cliquée
des = Target.Value
' adr = adresse du tableau correspondant calculé par la fonction AdrPlage
adr = AdrPlage(des)
' si adr vide - des non trouvé - on quitte sans rien faire - on peut faire apparaitre un message d'erreur
If adr = "" Then MsgBox "Erreur": Exit Sub
' remplissage et formatage de la listbox
With ListBox1
' ListFillRange est l'adresse du tableau
.ListFillRange = FD & "!" & adr
' nombre de lignes du tableau
nbli = Sheets(FD).Range(adr).Rows.Count
' alignement de la listbox à gauche et sous la cellule cliquée
.Left = Target.Left
.Top = Target.Top + Target.Height + 5
' hauteur de la listbox - c'est là qu'il faudra peut être modifier ht
ListBox1.Height = nbli * ht
' si la listbox est visible on a cache sinon on la montre
ListBox1.Visible = True
' on passe à la ligne suivante pour debloquer le curseur
Target.Offset(1, 0).Select
End With
End If
End Sub
il fonctionne parfaitement mais quand je veux le copier dans un autre fichier excel le message d'erreur " compile Error variable not defined" et ca sélectionne listebox1 .
je suis coincé merci de votre aide
A voir également:
- Message erreur listebox
- Recuperer message whatsapp supprimé - Guide
- Message absence thunderbird - Guide
- Message supprimé whatsapp - Guide
- Epingler un message whatsapp - Accueil - Messagerie instantanée
- Message du pere noel gratuit whatsapp - Accueil - Messagerie instantanée
1 réponse
Bonjour,
Il faudrait le fichier ou il y a l'erreur
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Il faudrait le fichier ou il y a l'erreur
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
https://www.cjoint.com/c/GCilxeIycqy voici le lien
et j'ai remarqué aussi que le double clique et opérationnel à n'importe quelle cellule pas seulement la colonne "E" alors que dans le fichier "original" c'est pas le cas
mreci
Dans un premier temps, faudrait quand meme mettre une listbox sur la feuille, apres ca ira mieux si vous mettez Cancel=True au debut de l'evenement befordouble_clic