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)
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 SubMalheureusement, 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 !