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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 171
    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 171
    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 171
    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 171
    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 171
    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 171
    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 171
    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 171
    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

+ Répondre à la discussion
Cette discussion est résolue.

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