Excel VBA

Bonjour,

J'ai un problème avec cette ligne de code sauf que je comprend pas d'où vient l'erreur : le massage qui apparaît c'est erreur d'exécution , impossible de lire la propriété Hlookup de la classe WorksheetFunction

Do While rownum < 207 'number of rows in data sheet + 1

Cells(3 * (rownum) - 2, 10).Value = WorksheetFunction.HLookup(Cells(6, 10).Value, Worksheets("dataused").Range("M1:EB250"), rownum, False)

'calculates grades from the exponent already calculated and the subtraction term. the if statements immediately below takes into account all the possibilities of values exceeding maximum on scale or below minimum on scale, as well as flipped scales

If Cells(3 * (rownum) - 2, 7).Value > Cells(3 * (rownum), 7).Value Then

If Cells(3 * (rownum) - 2, 7).Value >= Cells(3 * (rownum) - 2, 10).Value And Cells(3 * (rownum), 7).Value <= Cells(3 * (rownum) - 2, 10).Value Then

Cells(3 * (rownum) - 2, 11).Value = (Cells(3 * (rownum) - 2, 10).Value - Cells(3 * (rownum) - 2, 15).Value) ^ Cells(3 * (rownum) - 2, 14).Value * (20 / (Cells(3 * (rownum) - 2, 7).Value - Cells(3 * (rownum) - 2, 15).Value) ^ Cells(3 * (rownum) - 2, 14).Value)

ElseIf Cells(3 * (rownum) - 2, 7).Value <= Cells(3 * (rownum) - 2, 10).Value Then

Cells(3 * (rownum) - 2, 11).Value = 20

ElseIf Cells(3 * (rownum), 7).Value >= Cells(3 * (rownum) - 2, 10).Value Then

Cells(3 * (rownum) - 2, 11).Value = 0

End If

Merci,

Bonjour,

probablement que la fonction Hlookup retourne une erreur (pas trouvé l'information recherchée cells(6,10) dans la plage M1:M250)

Bonjour,

Fais l'effort (minime !) de mettre ton code sous balises Code... Les yeux des intervenants te remercieront !

Dans l'attente, je laisse les miens au repos...

Cordialement.

h2so4 a écrit :

Bonjour,

probablement que la fonction Hlookup retourne une erreur (pas trouvé l'information recherchée cells(6,10) dans la plage M1:M250)

Merci pour ta réponse mais les données recherchées sont bien dans cette plage de données en incluant des colonnes en plus qui sont vides.

J'ai essayé de sortir les colonnes en plus mais ceci ne résolu pas le problème.

Merci


MFerrand a écrit :

Bonjour,

Fais l'effort (minime !) de mettre ton code sous balises Code... Les yeux des intervenants te remercieront !

Dans l'attente, je laisse les miens au repos...

Cordialement.

Do While rownum < 207 'number of rows in data sheet + 1

Cells(3 * (rownum) - 2, 10).Value = WorksheetFunction.HLookup(Cells(6, 10).Value, Worksheets("dataused").Range("M1:EB250"),

rownum, False)

If Cells(3 * (rownum) - 2, 7).Value > Cells(3 * (rownum), 7).Value Then

If Cells(3 * (rownum) - 2, 7).Value >= Cells(3 * (rownum) - 2, 10).Value And Cells(3 * (rownum), 7).Value <= Cells(3 * (rownum) - 2,

10).Value Then

Cells(3 * (rownum) - 2, 11).Value = (Cells(3 * (rownum) - 2, 10).Value - Cells(3 * (rownum) - 2, 15).Value) ^ Cells(3 * (rownum) - 2,

14).Value * (20 / (Cells(3 * (rownum) - 2, 7).Value - Cells(3 * (rownum) - 2, 15).Value) ^ Cells(3 * (rownum) - 2, 14).Value)

ElseIf Cells(3 * (rownum) - 2, 7).Value <= Cells(3 * (rownum) - 2, 10).Value Then

Cells(3 * (rownum) - 2, 11).Value = 20

ElseIf Cells(3 * (rownum), 7).Value >= Cells(3 * (rownum) - 2, 10).Value Then

Cells(3 * (rownum) - 2, 11).Value = 0

End If

Je sais pas si c'est meiux comme ça , mais l'interfaçe n'aide pas trop

Mercii

rebonjour,

tu as marqué le problème comme résolu. est-ce le cas ? sinon mets-nous ton fichier

h2so4 a écrit :

rebonjour,

tu as marqué le problème comme résolu. est-ce le cas ? sinon mets-nous ton fichier

C'est pas vraiment résolu et c'est un projet confidentiel je peux pas partager le dossier. J'aimerai avoir des idées sur ce code la par contre la ou apparaît le bug dans mon code.

Merci

bonjour,

pour moi l'erreur vient bien du fait qu'il ne trouve pas l'information.

essaie en utilisant la fonction Hlookup dans excel avec les paramètres mis dans vba

=HLOOKUP(J6,dataused!M1:EB250,valeur de rownum quand tu as l'erreur, FALSE)

ou en français

=RECHERCHEH(J6;dataused!M1:EB250;valeur de rownum quand tu as l'erreur; FAUX)
h2so4 a écrit :

bonjour,

pour moi l'erreur vient bien du fait qu'il ne trouve pas l'information.

essaie en utilisant la fonction Hlookup dans excel avec les paramètres mis dans vba

=HLOOKUP(J6,dataused!M1:EB250,valeur de rownum quand tu as l'erreur, FALSE)

ou en français

=RECHERCHEH(J6;dataused!M1:EB250;valeur de rownum quand tu as l'erreur; FAUX)

Rebonjour,

Ma rechercheh marche sur le document excel mais toujours pas dans mon code j'essaie de modifier et de mettre les changements proposées sauf que quand j'inclus le numéro de la ligne correspondant mon code s’exécute à moitié.

Est-ce que le code tel qu'il est te paraît bizarre ou y a-t-il des corrections à faire?

Merci

bonsoir,

essaie d'anonymiser le fichier.

sinon ajoute cette instruction qui va afficher la valeur recherchée et le contenu de rownum.

utilise ces valeurs pour examiner ton fichier.

  MsgBox "valeur de J6 " & Cells(6, 10) & " valeur de rownum " & rownum
        Cells(3 * (rownum) - 2, 10).Value = WorksheetFunction.HLookup(Cells(6, 10).Value, Worksheets("dataused").Range("M1:EB250"), rownum, False)
h2so4 a écrit :

bonsoir,

essaie d'anonimiser le fichier.

sinon ajoute cette instruction qui va afficher la valeur recherchée et le contenu de rownum.

utilise ces valeurs pour examiner ton fichier.

  MsgBox "valeur de J6 " & Cells(6, 10) & " valeur de rownum " & rownum
        Cells(3 * (rownum) - 2, 10).Value = WorksheetFunction.HLookup(Cells(6, 10).Value, Worksheets("dataused").Range("M1:EB250"), rownum, False)

Bonjour,

En rajoutant le message box ça m'indique que je n'est pas de valeur dans ma ligne ce qui est le cas et vu que je déclare une

Do while rownum>207,

ça me renvois une erreur sur cette ligne là :

Cells(3 * (rownum) - 2, 10).Value = WorksheetFunction.HLookup(Cells(6, 10).Value, Worksheets("dataused").Range("M1:EB250"), rownum, False)

Merci

bonjour,

rownum doit avoir une valeur >=1 pour que la fonction Hlookup fonctionne correctement. de même pour l'instruction cell (rownum*3-2,7) le résultat du calcul 3*rownum-2 donne un N° de ligne négatif si rownum <1) ce qui provoquera également une erreur.

sans fichier exemple dans lequel tu peux reproduire le problème, j'arrête d'essayer de t'aider.

Dianekhazaka a écrit :
h2so4 a écrit :

bonsoir,

essaie d'anonimiser le fichier.

sinon ajoute cette instruction qui va afficher la valeur recherchée et le contenu de rownum.

utilise ces valeurs pour examiner ton fichier.

  MsgBox "valeur de J6 " & Cells(6, 10) & " valeur de rownum " & rownum
        Cells(3 * (rownum) - 2, 10).Value = WorksheetFunction.HLookup(Cells(6, 10).Value, Worksheets("dataused").Range("M1:EB250"), rownum, False)

Bonjour,

En rajoutant le message box ça m'indique que je n'est pas de valeur dans ma ligne ce qui est le cas et vu que je déclare une

Do while rownum>207,

ça me renvois une erreur sur cette ligne là :

Cells(3 * (rownum) - 2, 10).Value = WorksheetFunction.HLookup(Cells(6, 10).Value, Worksheets("dataused").Range("M1:EB250"), rownum, False)

Merci

Bonjour,

En rajoutant le message box ça m'indique que je n'est pas de valeur dans ma ligne ce qui est le cas et vu que je déclare une

Do while rownum>207,

ça me renvois une erreur sur cette ligne là :

Cells(3 * (rownum) - 2, 10).Value = WorksheetFunction.HLookup(Cells(6, 10).Value, Worksheets("dataused").Range("M1:EB250"), rownum, False)

Merci

Rechercher des sujets similaires à "vba"