Recherche V selon variable VBA

Bonjour à toutes et à tous,

J'ai une question sur l'utilisation de la fonction RechercheV en VBA. Je souhaite faire une rechercheV selon une variable appelée Gefalle dans mon code, mais le logiciel me reporte le bug suivant :

result = Application.WorksheetFunction.VLookup(Gefalle, sheet_lookup.Range("$A$4:$B$24"), 2, False)
image

J'ai essayé de remplacer la variable par la valeur que le logiciel retourne et cela fonctionne.

Par exemple dans le code ci-après, lorsque la valeur de DN_max est 300, la rechercheV fonctionne car j'ai une deuxième sélection qui s'opère selon ma variable. Lorsque la valeur est 70 ou 80 j'obtiens le même bug qu'expliqué ci-dessus ...

Sub Max_abfluss()

Dim DN_max As Integer
Dim Cell_max As Range

Dim sheet_max As Worksheet
Dim sheet_lookup As Worksheet

Dim Cell_Gefalle As Integer
Dim Gefalle As Single

Set sheet_max = ActiveWorkbook.Sheets("Bemessung Entwässerung")

Set Cell_max = sheet_max.Columns("Q")

DN_max = 0
Gefalle = 0

    DN_max = Application.WorksheetFunction.Max(Cell_max)

    Cell_Gefalle = WorksheetFunction.Match(DN_max, Cell_max, 0)

    Gefalle = ActiveWorkbook.Sheets("Bemessung Entwässerung").Cells(Cell_Gefalle, Cell_max.Column + 1)

Dim result As Single

Set sheet_lookup = ActiveWorkbook.Sheets("Data - Abfusstabellen - 1")

Select Case DN_max

'result = Application.WorksheetFunction.VLookup(Gefalle, sheet_lookup.Range("$A$4:$B$24"), 2, False) NE MARCHE PAS ... ... ...

Case 70

result = Application.WorksheetFunction.VLookup(Gefalle, sheet_lookup.Range("$A$4:$B$24"), 2, False)

Case 80

result = Application.WorksheetFunction.VLookup(Gefalle, sheet_lookup.Range("$A$4:$D$24"), 4, False)

...

Case 300

    Select Case Gefalle

    Case 0.2

    result = Application.WorksheetFunction.VLookup(0.2, sheet_lookup.Range("$A$4:$T$24"), 20, False)

...

    Case 3.5

    result = Application.WorksheetFunction.VLookup(3.5, sheet_lookup.Range("$A$4:$T$24"), 20, False)

    Case 4

    result = Application.WorksheetFunction.VLookup(4, sheet_lookup.Range("$A$4:$T$24"), 20, False)

    Case 4.5

    result = Application.WorksheetFunction.VLookup(4.5, sheet_lookup.Range("$A$4:$T$24"), 20, False)

    Case 5

    result = Application.WorksheetFunction.VLookup(5, sheet_lookup.Range("$A$4:$T$24"), 20, False)

    End Select

End Select

ActiveWorkbook.Sheets("Einleitungsbeschränkung").Cells(6, 3) = result

End Sub

Malheureusement, je ne peux pas partager mon fichier qui se veut privé.

Merci pour votre aide

Bonjour,

Commence par ôter les "$" de la plage

sheet_lookup.Range("A4:B24")

Voir si la variable Gefalle correspond au type de varia ble renseignée (format chiffre ou texte)

J'ai déclaré ma variable Gefalle en tant que double au lieu de single et je n'ai plus l'erreur .. Je te remercie pour ton aide.

PS : Retirer les "$" de la plage n'a pas fonctionné

Merci :p !

Rechercher des sujets similaires à "recherche variable vba"