• Initiateur de la discussion Initiateur de la discussion nrdz83
  • 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 !

nrdz83

XLDnaute Impliqué
Bonsoir à tous j'utilise ce code pour alimenter une listbox

Code:
Private Sub UserForm_Initialize()
Dim DerLig As Long
DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Tbl = Range("A5:C" & DerLig)
With Me.ListBox1
    .ColumnCount = 3
    .ColumnWidths = "80;210;20"
    .List = Tbl
End With
End Sub

mais j'aiu une erreur "variable objet ou variable de bloc with non definie"

Pour ma part je ne vois pas d'ou provient l'erreur merci pour vos lumières

amitiés
 
Re : erreur execution 91

Bonsoir
Je ne pense pas que ça puisse être ça.
Vous auriez cela s'il n'existait pas de contrôle ListBox1 dans votre userform.
Plus probablement le Find ne ramène aucune cellule à cause d'option de la boîte du sort non redéfinies.
Essayez:
VB:
DerLig = Cells.Find("*", .Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row
Ou alors votre feuille est complètement vide…
Cordialement.
 
Dernière édition:
Re : erreur execution 91

bonsoir à tous et merci
dranreb si je met ton code j'ai une erreur à .cells et non ma feuille n'est pas vide

j'ai essayé ce code en rajoutant,tbl

Code:
Private Sub UserForm_Initialize()

Dim derlig As Long, tbl

derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row

 tbl = Range("A5:C" & derlig)
With Me.ListBox1
    .ColumnCount = 3
    .ColumnWidths = "80;210;20"
    .List = tbl
End With
End Sub

mo usf s'affiche sans erreur par contre la listbox est vide


merci pour votre aide
 
Re : erreur execution 91

Aïe. Enlevez le point. J'ai mal copié d'une d'une autre source.

Ou bien notez vous cette fonction dans un modules dédié aux utilités (j'en ai toujours un dans tous mes classeurs) :
VB:
Function PlgUti(ByVal PlageDép As Range, Optional ByVal PlagExam As Range = Nothing) As Range
Rem. Cherche la partie utilisée d'une plage, c'est à dire celle qui s'étend jusqu'à la dernière cellule renseignée de plus qu'une chaîne vide.
'    PlageDép: Plage de départ. Seule la 1ère cellule spécifiée est prise en compte pour la déterminer, et suffit donc pour une utilisation VBA.
'            Pour utilisation en formules, il est néanmoins nécessaire de spécifier la plage depuis celle ci jusqu'au reste des colonnes entières.
'    PlageExam: Plus grande plage susceptible de contenir la plage cherchée.
'            Facultatif: UsedRange assumé par défaut.
Dim LMax As Long, CMax As Long, NbL As Long, NbC As Long
On Error GoTo RienTrouvé
If PlagExam Is Nothing Then Set PlagExam = PlageDép.Worksheet.UsedRange
LMax = PlagExam.Find("*", PlagExam.Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row
CMax = PlagExam.Find("*", PlagExam.Cells(1, 1), xlValues, xlWhole, xlByColumns, xlPrevious).Column
On Error GoTo 0
NbL = LMax - PlageDép.Row + 1: If NbL < 1 Then GoTo CEstToutVide
NbC = CMax - PlageDép.Column + 1: If NbC < 1 Then GoTo CEstToutVide
Set PlgUti = PlageDép.Resize(NbL, NbC)
Exit Function
RienTrouvé: Resume CEstToutVide
CEstToutVide: Set PlgUti = Nothing
End Function
Et faites :
VB:
.List = PlgUti(Cells(5,1)).Resize(, 3).Value
 
Dernière édition:
Re : erreur execution 91

Bonsoir,

Essaie en indiquant explicitement sur quelle feuille tu pointes.
Exemple pour Feuil1

Code:
With Worksheets("Feuil1")
    DerLig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
    Tbl = .Range("A5:C" & DerLig)
End With

A+
 
Re : erreur execution 91

Re bonsoir et encore merci pour votre aide. J'ai donc ce code qui fonctionne à merveille

Code:
Private Sub UserForm_Initialize()

Dim derlig As Long, tbl

With Worksheets("Composition radeau")
    derlig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
    tbl = .Range("A3:E" & derlig)
End With
With Me.ListBox1
    .ColumnCount = 5
    .ColumnWidths = "110;210;60;60;80"
    .List = tbl
End With
End Sub

Par contre je voudrais mettre un format monétaire # ##0,00 € dans ma colonne 4

comment dois je modifier ce code?

Para avance merci

amitiés
 
Re : erreur execution 91

Ou, ça marche peut être par hasard pour l'instant…

Extrait de l'aide sur la méthode Find:
[h=2]Notes[/h] Les paramètres des arguments LookIn, LookAt, SearchOrder et MatchByte sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez aucun paramètre pour ces arguments lors du prochain appel de la méthode, les paramètres enregistrés sont utilisés. Le fait de définir les paramètres de ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour éviter toute ambiguïté, définissez ces arguments de façon explicite chaque fois que vous utilisez cette méthode.
 
- 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
10
Affichages
661
Réponses
3
Affichages
922
Réponses
4
Affichages
1 K
W
Réponses
0
Affichages
883
wasaru
W
R
Réponses
20
Affichages
4 K
RaVenSs
R
Réponses
17
Affichages
2 K
  • Question Question
XL 2019 Erreur 91
Réponses
16
Affichages
2 K
Retour