Selection d'une cellule à partir de référence colonne et lig

Bonjour à tous,

je sais que le sujet à été souvent traité mais je ne trouve pas mon bonheur.

Mon problème est le suivant:

Sur la ligne 9 j'ai toutes les dates de l'année au format ../../../

et dans la colonne D j'ai le matricule de personnes souhaitant prendre un congé

j'ai un userform2 ou est présent un calendrier (DTpicker) qui est appelé "calendrier1" et un textbox qui permet de rentré un matricule ( appeler textbox1)

j'aimerai donc pouvoir selectionner la cellule correspondante à la date choisi dans le calendrier et le matricule de la personne.

j'ai déja réussi à selectionner la bonne colonne mais pour la ligne j'ai une erreur

voici mon programme

Private Sub CommandButton6_Click()

Sheets("calendrier").Select

With UserForm2
    jour = Calendrier1.Value
    matricule = TextBox1.Value

     End With

With Sheets("calendrier")

    col = .Rows(9).Find(jour).Column
    lig = .Columns(1).Find(matricule).row
    .Cells(lig, col).Select

End With
End Sub

si je supprime Lig, dans les deux dernieres colonnes, pas de soucis je trouve bien la colonne correspondante.

Mais pour lig j'ai un message d'erreur "erreur d'exécution 91, variable object ou variable de bloc with non définie

dans le fichier excel il n'y a que l'exemple du tableau

merci par avance de votre aide

Bonjour,

Teste ce qui suit (remplace ton code par celui-ci) :

Private Sub CommandButton6_Click()

    Dim CelCol As Range
    Dim CelLgn As Range
    Dim Jour As Date
    Dim Matricule As String

    Sheets("calendrier").Select

    With UserForm2

        Jour = .Calendrier1.Value
        Matricule = .TextBox1.Value

    End With

    With Sheets("calendrier")

        Set CelCol = .Rows(9).Find(Jour)
        Set CelLgn = .Columns(1).Find(Matricule)

        If Not CelCol Is Nothing And Not CelLgn Is Nothing Then

            .Cells(CelLgn.Row, CelCol.Column).Select

        Else

            MsgBox "Soit la date n'est pas dans le tableau, soit le matricule est faux !"

        End If

    End With

End Sub

Hervé.

Super ! merci Hervé, cela fonctionne !

un jour et demi que je planche dessus à ne plus rien y comprendre.. Le moral revient

J'en profite pour te demander si tu serais faire le lien entre deux calendrier?

je m'explique:

la case que tu m'a permis de trouver et sélectionner, prends forme suivant un type de congé (bleu si congé payé, vert si rtt etc..)

la mise en forme de la case c'est ok, j'ai réussi à l'aide de l'enregistreur de macro à extraire les infos.

mais maintenant la difficulté est que j'ai deux calendriers, le calendrier1 pour le début du congés, et le calendrier2 pour la fin du congés.

j'aimerais donc pourvoir sélectionner X case suivant l'intervalle des deux calendrier (voir photo illustration

je ne sais pas si je suis clair ..

je sais que j'abuse un peu mais cela finirai mon programme .

19 08 2015 15 56 07

Bonjour,

Si tu déduis de la date de fin la date de début, tu as le nombre de jours il te suffit alors de prolonger la sélection. Une piste probablement à adapter :

Private Sub CommandButton6_Click()

    Dim CelCol As Range
    Dim CelLgn As Range
    Dim Jour As Date
    Dim Matricule As String

    Dim DateFin As Date
    Dim NBJours As Integer

    Sheets("calendrier").Select

    With UserForm2

        Jour = .Calendrier1.Value 'jour de départ

        DateFin = .Calendrier2.Value 'jour de retour

        Matricule = .TextBox1.Value

        NBJours = DateFin - Jour 'nombre de jours de congés

    End With

    With Sheets("calendrier")

        Set CelCol = .Rows(9).Find(Jour)
        Set CelLgn = .Columns(1).Find(Matricule)

        If Not CelCol Is Nothing And Not CelLgn Is Nothing Then

            .Range(.Cells(CelLgn.Row, CelCol.Column), .Cells(CelLgn.Row, CelCol.Column + NBJours)).Select

        Else

            MsgBox "Soit la date n'est pas dans le tableau, soit le matricule est faux !"

        End If

    End With

End Sub

Hervé.

Juste parfait! problème résolu, merci infiniment Hervé.

bonne journée

Rechercher des sujets similaires à "selection partir reference colonne lig"