Find et Row - Erreur 91

Bonjour,

Je débute en VBA et dans le cadre d'un projet professionnel j'essaye de créer un formulaire qui permet de prendre une personne et la placer sur un planning selon un numéro de studio une date d'arrivée et une date de départ.

Après recherches, j'essaye donc de récupérer le numéro de ligne de la date d'arrivé et le numéro de colonne du studio pour pouvoir trouver la cellule au croisement des deux. Voici mon code :

        'déclaration des variables
        Sheets("PLANNING").Select
        Dim Ligne As Long
        Dim Colonne As Long
        Dim studio As String
        Dim DateArrivee As Date
        Dim DateDepart As Date

        'Attribution des variables
        DateArrivee = lblarrivee.Value
        DateDepart = lbldepart.Value
        studio = Combostudio.Value

        'Recherche de la ligne correspondant à la date et la colonne au studio
        Ligne = Worksheets("PLANNING").Range("A1:A22").Find(DateArrivee, LookIn:=xlValues, LookAt:=xlWhole).Row
        Colonne = Worksheets("PLANNING").Range("A1:Z1").Find(studio, LookIn:=xlValues, LookAt:=xlWhole).Column

Malheureusement le code me renvoit une erreur 91.

J'ai déjà essayé de changer le type des variables.

Je sais aussi que le problème vient de la fonction Row et column, car avant l'ajout (et en définissant mes variables comme des range) le code semblait fonctionner.

J'ai épluché les forums et je sèche. Si l'un d'entre vous aurait la réponse, ou même pourrait me dire si c'est pertinent de fonctionner comme cela ou si ma logique n'est pas adapté.

Je vous remercie par avance !

Bonjour et bienvenue sur le forum

Il serait plus facile de travailler sur le fichier correspondant à ta macro pour trouver ce qui bugue...

Bye !

Merci beaucoup pour ta réponse.

Je n'y ai pas pensé, j'ai rajouté le fichier dans le post initial.

Bon, J'ai réussi à trouver la solution tout seul, sans forcément comprendre pourquoi.

Si ça peut aider quelqu'un -> J'ai déclaré mes deux variables de date en tant que "string" au lieu de "date" et ça a résolu le tout.

Bonjour,

Finalement le problème n'est pas solutionné. Des fois ça fonctionne, des fois pas. Et pour les mêmes valeurs entrées dans mon formulaire.

J'ai la même méthode deux lignes plus haut qui fonctionne avec le même type de variable et la même méthode quelques lignes plus bas avec le même type de variable qui ne fonctionne pas.

Je suis un peu dérouté, j'ai fait un peu de PHP il y a quelques années et ce comportement m'est inconnu, soit ça fonctionne, soit ça fonctionne pas. Ici j'ai l'impression que c'est un peu aléatoire.

Je mets une mise à jour de mon code, si quelqu'un à la motivation pour me lire.

Merci !

bonjour slyworld,

  DateArrivee = DateSerial(2024, 1, 12)   'comme exemple, dateArrivee est une date, pas un string
     Ligne = Worksheets("PLANNING").Range("A1:A22").Find(DateArrivee, LookIn:=xlFormulas, LookAt:=xlWhole).Row     'xlformulas !!! , même quand ce n'est pas une formule

Merci beaucoup ! Ca a effectivement solutionné le problème !

Rechercher des sujets similaires à "find row erreur"