erreur d'exécution 91 dont je ne comprends rien

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 !

sourcier08

XLDnaute Occasionnel
Bonjour à tous,

J'essaie de récupérer la valeur d'une cellule (entête) en fonction d'une valeur max d'une ligne. Seulement, je n'arrive pas à définir la plage de rechercher (une ligne précise) pour ensuite récupérer l'entête.

Je ne vois pas où est le problème et pourquoi il me renvoie donc cette erreur en me parlant de bloc with et d'objets.

Code:
Sub valeur1()
Dim Plage1 As Range, c As Range, cell As Range
Dim choix1 As Integer
Dim g As Integer

g = Sheets("saisie").Range("C2").Value

For Each cell In Sheets("saisie").Range("liste")
    
    choix1 = Sheets(cell.Value).Range("A4:A19").Find(g).Row   'qu'est-ce qui foire là ?
        
    Set Plage1 = Range("b" & choix1 & ":p" & choix1)
    Set c = Plage1.Find(Application.WorksheetFunction.Max(Plage1), LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then MsgBox Cells(3, c.Column).Value
    
Next cell

End Sub

Merci d'avance pour l'aide.
 

Pièces jointes

Re : erreur d'exécution 91 dont je ne comprends rien

Bonjour,

Certainement que la cellule attendue par
Code:
Sheets(cell.Value).Range("A4:A19").Find(g)
n'est pas trouvée et ne peut par conséquent avoir de .Row

Initialiser une variable range l'utiliser pour le .Find et la tester.

Ne jamais croire anticiper les résultats d'une recherche ni les utiliser sans test préalable.

A+
 
Re : erreur d'exécution 91 dont je ne comprends rien

Merci à tous deux.

mécano, je viens de voir ta réponse et pour toi, ce serait le format personnalisé qui poserait problème dans ma recherche ?
Je regarderai ta proposition aussi.

Pour l'heure, j'ai contourné le problème.

Code:
Dim Plage1 As Range, c As Range, cell As Range
Dim g As Integer, h As Integer, i As Integer, j As Integer
Dim d As Integer, e As Integer


g = Sheets("saisie").Range("C2").Value
h = g - 11

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

For Each cell In Sheets("saisie").Range("liste")
        
    Set Plage1 = Sheets(cell.Value).Range("b" & h & ":p" & h)
    Set c = Plage1.Find(Application.WorksheetFunction.Max(Plage1), LookIn:=xlValues)
        
    d = Sheets("Accueil").Range("B3:N27").Find(cell.Value).Row
    e = Sheets("Accueil").Range("B3:N27").Find(cell.Value).Column
    
    On Error Resume Next
    
    Cells(d, e).Offset(1, 1) = Sheets(cell.Value).Cells(3, c.Column).Value
    Cells(d, e).Offset(1, 2) = c
    
Next cell

Et tout va bien.
 
Dernière édition:
Re : erreur d'exécution 91 dont je ne comprends rien

Ta cellule ne contient pas "15" mais "Semaine 15" alors, soit tu fais comme indiqué message #3, soit tu fais comme cela :

Code:
choix1 = Sheets(cell.Value).Range("A4:A19").Find(g, , , xlPart).Row

pour indiquer que "15" n'est qu'une partie du contenu de la cellule.

Cordialement
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
489
Réponses
7
Affichages
659
Réponses
28
Affichages
2 K
Réponses
3
Affichages
830
Retour