IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Problème de Date d'Objet range et de déclaration de variable ! [XL-2007]


Sujet :

Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut Problème de Date d'Objet range et de déclaration de variable !
    Bonjour à tous
    Même en après une nuit de sommeil, cela ne m'a pas porté conseil et je bute sur le problème depuis 5h du matin
    J'ai une ligne F5:R5 ou une macro inscrit des dates sous forme "samedi 21 juillet 2012" ; comme je travail en demis journée, les cellules sont fusionnées par paires ex: F5:G6 etc.. Je vérifie si l'une de ces cellules est égale à samedi afin d'appliquer une condition....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub CommandButton1_Click()
     
    Dim R As Range
    Dim E As String
    Dim J As Double
    Dim Compteur As Double
    Dim myDate As String
    ActiveSheet.Unprotect
    J = (Durée.Value * 2)
    If Range("A7") = "" And Range("A6") <> "" Then
    Compteur = 1
    While Compteur < J
    Compteur = Compteur + 1
    myDate = "samedi"
    'ma recherche dans la ligne 5
    Set R = Range("ZZ6").End(xlToLeft).Offset(-1, 1).Find(myDate, lookat:=xlWhole)
     
    'c'est là que ça coince je voudrais passé R As Range en G As Variant. ça fonctionne dans une autre macro de mon classeur avec la même syntaxe mais pas ici et je ne trouve pas pourquoi
    Dim G As Variant
    G = R.Value
     
    If G = "samedi" Then
    Range("ZZ6").End(xlToLeft).Offset(0, 3) = 1
    End If
    Range("ZZ6").End(xlToLeft).Offset(0, 1) = 1
    Wend
    Range("ZZ6").End(xlToLeft).Select
    Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
    Selection.Interior.Color = ShowColor
    End If
    En Fait ce que j'essais de sauter les weekend du calendrier de la ligne 5.

    [IMG][/IMG]
    L'idéal serait de colorier les cellule à partir de la date de début du premier DTCkiper de l'UserForm et d'arrêter a la date du second DtcKiper tout en sautant les weekend mais comme je ne sais pas comment faire simplement, je commence par inscrire des 1 dans les cellules concernées, puis sélectionner ces 1 et enfin les colorés, mais c'est pas simple et ça va me poser pas mal de problème et de condition.... Si quelqu'un a une idée, se serait super !
    Cordialement
    Didier

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    C'est un diagramme de Gantt que tu veux réaliser ?
    Nul de besoin de code VBA pour cela, un peu de lecture ici
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    Mon diagramme de gant était justement conçu comme dans le post que tu as mis en ligne. J'essais de l'amélioré avec du code VBA sans pour autant recéer MS Project car je n'ai pas besoin de toutes les fonction et je veux que ça reste simple. C'est pour des cours d'organisation de chantier et les stagiaires ne maîtrisent pas tous excel !
    cordialement

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par dmoluc Voir le message
    Mon diagramme de gant était justement conçu comme dans le post que tu as mis en ligne. J'essais de l'amélioré avec du code VBA sans pour autant recéer MS Project car je n'ai pas besoin de toutes les fonction et je veux que ça reste simple. C'est pour des cours d'organisation de chantier et les stagiaires ne maîtrisent pas tous excel !
    cordialement
    Ce que tu as lu est un exemple.
    En lisant ta demande, il y a juste une mise en forme conditionnelle à placer et tu as un exemple dans le post que je t'ai référencé.
    Pour mettre en couleur les jours du chantier il faut comparer si la date de la cellule à mettre en couleur ou pas est dans la fourchette de début chantier et fin de chantier et que cette date n'est pas un samedi ou un dimanche. C'est un simple ET avec 2 opérateurs logiques >= et <= ainsi que la formule JOURSEM qui te donne le n° du jour de la semaine
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Petit exemple, en supposant que la date de début est en A2, le nombre de jours en B2 et la date de fin en C2. Les dates commencent à partir de la colonne D et sont en ligne 1
    Formule a placer dans la mise en forme conditionnelle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ET(D$1>=$A2;D$1<=$C2;JOURSEM(D$1;2)<6)
    Autre cas de figure,
    A2 - Date de début, B2 - Nbre de jours et le reste est le même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ET(D$1>=$A2;D$1<=SERIE.JOUR.OUVRE($A2;$B2-1);JOURSEM(D$1;2)<6)
    La formule SERIE.JOUR.OUVRE calcule la date de fin. On peut même y ajouter les jours fériés.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    Avec une formule ça va être coton pour choisir la couleur et il va falloir que j'empile les mise en forme conditionnelles. Je suppose aussi qu'il va me falloir 2 colonnes supplémentaires pour la date de début et de fin de chaque tâche. Je vais donc essayé de creuser un peu plus en VBA peu être en changeant mon fusil d'épaule

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par dmoluc Voir le message
    Avec une formule ça va être coton pour choisir la couleur et il va falloir que j'empile les mise en forme conditionnelles. Je suppose aussi qu'il va me falloir 2 colonnes supplémentaires pour la date de début et de fin de chaque tâche. Je vais donc essayé de creuser un peu plus en VBA peu être en changeant mon fusil d'épaule
    Je ne comprends pas ce que tu veux dire. Pourquoi empiler les couleurs ?
    Que dois-tu mettre en couleur exactement, d'après le print screen que tu as déposé, je ne vois qu'une seule couleurs du vert, et éventuellement du gris pour les week-end donc 2 couleurs.
    [EDIT]
    De plus dans ton code VBA, je vois que tu compares "Samedi" en l'utilisant comme un string alors qu'une date est un nombre ?
    il va me falloir 2 colonnes supplémentaires pour la date de début et de fin de chaque tâche
    Tu n'as pas lu les deux propositions que j'ai faites. Il y ajuste une colonne à ajouter, la date de début (voir la 2ème proposition)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    Oui c'est vrai le date de début doit suffire et la formule fait le reste, mais pour les couleurs, l'image que j'ai postée n'est qu'un exemple car il n'y a qu'une seule tâche dans le tableau ; en général chaque tâche a une couleur différente !
    Dans mon diagramme j'avais empilées les mises en formes conditionnelles ; je colorais les cellules en tapant un chiffre (1 = jaune, 2 = rouge etc...)
    ça fonctionne et je vais sans doute modifier légèrement mon tableau grâce à ta formule car il n'y a pas grand chose à changer, mais j'essais quand même de faire une boite de dialogue fonctionnelle, alors toutes aide sera la bienvenue
    Cordialement

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut Ajouté une précision
    Bonjour,
    Voici un exemple à adapter.
    Nous partons de l'hypothèse que le planning commence en A1 de la feuille Feuil1
    Que la première ligne contient les étiquettes de colonnes, les lignes suivantes la liste des projets avec leurs contenus suivant l'ordre ci-dessous.
    Contenu des colonnes
    A - Date début
    B - Nbre de jours
    C - Date fin
    D - Code couleur (1, 2 etc ... correspondant ici à ColorIndex)
    Ensuite les colonnes de E à .... contiennent les dates
    Le code
    Dans un module Standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Option Explicit
    Public sht As Worksheet
    Public dbPlan As Range, dbPlanLib As Range, dbPlanDate As Range
    Const LibCol As Byte = 4 ' 4 Premières colonne pour le libellé
    Public Enum Libelle
     StartDate = 1
     NbreJour = 2
     Color = 4
     EndDate = 3
    End Enum
    Public FlagInit As Boolean
    Sub INIT()
     FlagInit = True
     Set sht = ThisWorkbook.Worksheets("Feuil1")
     Set dbPlan = sht.Range("A1").CurrentRegion
     Set dbPlanLib = dbPlan.Resize(dbPlan.Rows.Count, LibCol)
     Set dbPlanDate = dbPlan.Offset(0, LibCol).Resize(dbPlan.Rows.Count, dbPlan.Columns.Count - LibCol)
    End Sub
    Dans l'objet Feuil1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Count > 1 Then Exit Sub
     If Not (FlagInit) Then INIT
     If Not Intersect(Target, dbPlanLib) Is Nothing Then
      MFC Target.row
     End If
    End Sub
    Private Sub MFC(row As Long)
      If row = 1 Then Exit Sub ' Ajouter cette ligne, pour éviter bug
      Dim c As Integer ' Colonne pour la boucle
      Dim dateCol As Date ' Date de la colonne
      Dim StartDate As Date, EndDate As Date ' Date début et fin
      StartDate = dbPlanLib(row, Libelle.StartDate)
      EndDate = dbPlanLib(row, Libelle.EndDate)
      For c = 1 To dbPlanDate.Columns.Count
       dateCol = dbPlanDate.Cells(1, c)
       Select Case True
        Case dateCol >= StartDate And dateCol <= EndDate And Application.WorksheetFunction.Weekday(dateCol, 2) < 6
         dbPlanDate(row, c).Interior.ColorIndex = dbPlanLib(row, Libelle.Color)
        Case Else
         dbPlanDate(row, c).Interior.ColorIndex = 0
       End Select
      Next
    End Sub
    Ce code a été testé mais malgré le soin apporté aux différents tests, il est possible que des bugs m'aient échappés. Merci de le signaler.

    [EDIT]
    J'ai omis de signaler que la procédure événementielle ne s'enclenche que dans le cas où l'on modifie une des cellules des 4 premières colonnes.
    [EDIT2]
    Bug constaté
    Ajouter la ligne ci-dessous dans la procédure Sub MFC (mise en rouge dans le code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If row = 1 Then Exit Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  10. #10
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    Je te remercie vraiment pour ce code et tout ce travail Je vais étudier ça pas à pas car ce qui m'intéresse le plus c'est apprendre comment ça fonctionne et il y a encore 15 jours, les seules macros que j'avais faites étaient des enregistrement automatiques. C'est donc sur que je ne comprend pas tout
    Enfin si je n'y arrive pas il me restera mon bon vieux planning avec les formules et si je veux quelque chose de complexe je me débrouille asses bien avec MS Project. Tu me diras sans doute, alors pourquoi s'embêter avec le VBA : c'est simplement pour apprendre car je fais aussi un peu d'initiation à Excel et parfois j'ai des stagiaires qui en savent presque autant que moi ou alors qui me pose des colles ; je veux donc m'armer un peu, mais ma femme commence à râler car il parait que les vacances ne sont pas faites pour s'instruire
    Encore merci,
    Cordialement

  11. #11
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    En fait je bute toujours sur le même problème : impossible de comparer ou de récupérer une valeur de l'objet Range, pourtant hier j'y était arrivé avec la même syntaxe
    si quelqu'un pouvait me donner un tuyaux, je pense après pouvoir me débrouiller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Début = DTPicker1.Value
    Fin = DTPicker2.Value
     
    J = (Durée.Value * 2)
     
    If Range("A7") = "" And Range("A6") <> "" Then
    Dim x As Range
    Dim ligne As Integer
    Dim colonne As Integer
     
    Set x = Range("F5:DN5").Find(Début, , xlValues)
     
    'jusque là cela fonctionne, je récupère bien l'adresse de ma cellule
    'mais en dessous impossible de récupérer la ligne ou la colonne et même chose dans mes autre essais je bute toujours sur la variable déclarée en Range
     
    ligne = x.Row
    colonne = x.Column
    'là je ne sais pas si la syntaxe est bonne pour inscrire 1 dans la bonne cellule
    Range(colonne, ligne).Offset(1, 0) = 1
     
    'Aprés mis a part les weekend ça fonctionne parfaitement
    Compteur = 1
    While Compteur < J
    Compteur = Compteur + 1
    Range("ZZ6").End(xlToLeft).Offset(0, 1) = 1
    Wend
    Range("ZZ6").End(xlToLeft).Select
    Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
    Selection.Interior.Color = ShowColor
    End If
    Merci si quelqu'un peu m'aider
    coordialement

  12. #12
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu expliquais ce que tu veux comparer.
    Quelles cellules, les critères de comparaisons et ce que sont censés représenter ces cellules.
    Ce serait plus simple que d'essayer de déchiffrer ce que tu veux faire au travers de ton code.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  13. #13
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    Ligne 5 à partir de F j'ai les dates jour aprés jour
    avec ce code je récupère l'adresse de la date de début de ma tâche
    X est en Range et Début = la date du DTPicker1 de l'userform qui est lancé automatiquement quand j'inscrit le rendement de la tâche dans la colonne D (c'est d'ailleur la seule modifiable, toutes les autres sont protégées)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set x = Range("F5:DN5").Find(Début, , xlValues)
    Je trouve bien l'adresse mais quand je veus récupérer la ligne et la colonne ç plante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ligne = x.Row
    colonne = x.Column
    Ligne et colonne sont toutes deux déclarées en Integer
    Hier j'avais bidouiller un peu au hasard la déclaration de mes variable et tout d'un coup cela a fonctionner en déclarant la variable en Variant mais aujourd'hui rien à faire j'ai essayer toute les déclarations que j'ai pu trouver sans résultat
    Enfin merci de m'aider c'est vraiment sympa

  14. #14
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne comprends pas pourquoi utiliser un Find pour une date quand une simple boucle sur la ligne contenant ces dates suffisait.
    Il y a une chose que je ne comprends pas non plus.
    As-tu essayé le code que je t'ai envoyé ou ne ne l'as tu pas compris. parce-que je me demande à quoi cela sert de t'aider si c'est pour persister à continuer dans une mauvaise direction.
    Et si c'est une autre question qui n'a rien à voir avec la première. Tu l'indiques comme Résolue et tu ouvres un nouveau ticket.

    Je joins le classeur avec le code que je t'ai proposé tout à l'heure.
    Fichiers attachés Fichiers attachés
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  15. #15
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par dmoluc Voir le message
    Ligne 5 à partir de F j'ai les dates jour aprés jour
    avec ce code je récupère l'adresse de la date de début de ma tâche
    X est en Range et Début = la date du DTPicker1 de l'userform qui est lancé automatiquement quand j'inscrit le rendement de la tâche dans la colonne D (c'est d'ailleur la seule modifiable, toutes les autres sont protégées)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set x = Range("F5:DN5").Find(Début, , xlValues)
    Je trouve bien l'adresse mais quand je veus récupérer la ligne et la colonne ç plante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ligne = x.Row
    colonne = x.Column
    Ligne et colonne sont toutes deux déclarées en Integer
    Hier j'avais bidouiller un peu au hasard la déclaration de mes variable et tout d'un coup cela a fonctionner en déclarant la variable en Variant mais aujourd'hui rien à faire j'ai essayer toute les déclarations que j'ai pu trouver sans résultat
    Enfin merci de m'aider c'est vraiment sympa
    Et quel message d'erreur rencontres-tu et à quelle ligne du code ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  16. #16
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    la question n'a pas changée : pourquoi je n'arrive pas a extraire les valeur d'une variable déclarée en Range ?
    Quand à la boucle, je n'y avait pas pensé : Hélas trop peu de connaissance en VBA
    C'est vrai aussi que je ne sais pas trop quoi faire de ton code : ma feuille est bourrée de formules qui vont chercher des valeurs dans d'autre feuille et je voudrais modifier seulement la zone graphique du Diagramme et pas les nombreux calcul qui suivent en dessous.

    Je vais creusé l'idée de la boucle car au moins je n'aurais plus de valeur Range

  17. #17
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    erreur d'exécution 91
    variable objet ou variable de bloc non définie
    ligne = x.Row
    pourtant j'ai déclarer les variables !

  18. #18
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut
    Bonjour
    Citation Envoyé par dmoluc Voir le message
    erreur d'exécution 91
    variable objet ou variable de bloc non définie
    ligne = x.Row
    pourtant j'ai déclarer les variables !
    Ce code fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim x As Range
     Dim myDate As Date
     myDate = DateSerial(2012, 7, 20)
     Set x = Range("E1:AL1").Find(What:=myDate, SearchOrder:=xlByColumns)
     Debug.Print x.row & vbTab & x.Column
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  19. #19
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut
    même résultat mais maintenant ça plante ici
    [CODEDebug.Print x.Row & vbTab & x.Column][/CODE]
    même erreur d'exécution que tout à l'heure et si j'enlève la ligne
    ça bugs ici
    Je n'y comprend rien

  20. #20
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 234
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Bon effectivement, cela fonctionnait bien chez moi et puis j'ai eu les mêmes soucis.
    Je doit vérifier mais pas le temps pour l'instant.
    As-tu regarder le classeur que j'ai publié ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème avec un objet Range
    Par MagicJambond dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/08/2014, 12h33
  2. [XL-2010] Problème avec la méthode find d'un objet Range dans une zone filtrée
    Par stargates01 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/02/2014, 23h27
  3. Problème de date dans MONTHS_BETWEEN
    Par ghostlord79 dans le forum Oracle
    Réponses: 10
    Dernier message: 07/04/2004, 11h21
  4. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 15h05
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo