Erreur définie par l'application ou l'objet

Bonjour,

J'écris une macro assez complexe avec plein de userform etc...

J'ai un userform3 avec une listbox codée comme-ci :

Private Sub UserForm_Initialize() 

With ListBox1 
For k = 2 To 60 
.AddItem Worksheets("Ambiant Air Condition").Cells(1, k).Value 
Next k 
End With 

ListBox1.ListIndex = 0 
ListBox1.MultiSelect = 1 

Puis j'ai le programme suivant qui se lance. Je ne vous mets qu'une partie, là où ca bloque.

J'ai deux sheets. Dans les deux sheets, la colonne A contient des dates sous le format m/d/yyyy h:mm"

La listBox allant chercher mes identifiants de colonnes de la sheet1, je voudrais que si l'utilisateur selectionne le premier item, la macro copie les données correspondants à la date de la sheet1 vers la sheet2. Vous comprendrez avec le code

Mais il y a une erreur sur cette ligne là (Worksheets(2).Cells(a, b).Value = Worksheets("Ambiant Air Condition").Cells(j, (i + 2)).Value), sans que je n'en comprenne la raison

Dim nbl, nblx As Long 
Dim a, b As Long 

nbl = Worksheets("Ambiant Air Condition").UsedRange.Count 
a = 3 
b = 2 
For i = 0 To UserForm3.ListBox1.ListCount 
If UserForm3.ListBox1.Selected(i) = True Then 
For j = 2 To nbl 
If Worksheets("Ambiant Air Condition").Cells(j, "A").Value = Worksheets(2).Cells(a, "A").Value Then 
Worksheets(2).Cells(a, b).Value = Worksheets("Ambiant Air Condition").Cells(j, (i + 2)).Value
a = a + 1 
End If 
b = b + 1 
Next j 
End If 
Next i 

Merci pour votre aide !

Bonsoir,

Il n'y a pas de ligne surlignée.

Dans ton code, on ne connait pas la valeur de x.

Donc, difficile de t'aider dans ces conditions.

Benead a écrit :

Bonsoir,

Il n'y a pas de ligne surlignée.

Dans ton code, on ne connait pas la valeur de x.

Donc, difficile de t'aider dans ces conditions.

Merci J'ai modifié le message donc

Bonjour,

je ne vois pas d'erreur sur la ligne que tu mentionnes, par contre je vois une erreur sur la ligne

For i = 0 To UserForm3.ListBox1.ListCount 

cela devrait être

For i = 0 To UserForm3.ListBox1.ListCount-1

mais cela n'explique pas ton message d'erreur. Il faudra sans doute avoir ton fichier ou un fichier dans lequel tu peux reproduire l'erreur.

edit : correction typo

Bon, j'ai trouvé la ligne qui est à l'origine de l'erreur :

nbl = Worksheets("Ambiant Air Condition").UsedRange.Count 

Cela compte toutes les cellules de la plage utilisée, tu dois ajouter Rows :

nbl = Worksheets("Ambiant Air Condition").UsedRange.Rows.Count 

Quand tu déclares tes variables, il faut mettre le type à chaque variable, pas seulement en bout de ligne

Dim nbl As Long, nblx As Long

Dim a As Long, b As Long

Bien vu H2so4, je ne l'avais pas vu celle-là...

Bonjour,

un grand merci à tous les deux !

Grâce à votre aide, tout fonctionne à merveille

A bientot !

Tuline

Rechercher des sujets similaires à "erreur definie application objet"