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

Macros et VBA Excel Discussion :

Fonction WeekDay fonctionne sur une macro, pas dans une autre [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut Fonction WeekDay fonctionne sur une macro, pas dans une autre
    Bonjour j'ai deux macros dans lesquelles j'utilise la fonction WeekDay.
    La première macro me donne pour cette fonction le résultat attendu, la seconde me renvoi l'erreur "Incompatibilité de Type"

    Ce code fonctionne:
    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
    31
    Sub Data_Date()
     Dim Act As Worksheet
     Dim Base As Worksheet
     Dim x As Variant
     Set Act = ThisWorkbook.Sheets("Actual")
     Set Base = ThisWorkbook.Sheets("Baseline")
     x = InputBox("Enter Data Date" & Chr(10) & " " & Chr(10) & "Use format dd/mm/yy", "NEW_DATA_DATE", "", vbOKCancel)
     If StrPtr(x) = 0 Then
         Exit Sub
      Else
       If x = "" Then
          MsgBox "Enter a valid date", , "WARNING"
        Else
            Equipment_Edit.ComboBox1.List = Act.Range("C9:C24").Value
            Milestone_Edit.Label1.Caption = Act.Range("F8").Value
            Milestone_Edit.Label2.Caption = Act.Range("G8").Value
            Milestone_Edit.Label3.Caption = Act.Range("H8").Value
            Milestone_Edit.Label4.Caption = Act.Range("I8").Value
            Milestone_Edit.Label5.Caption = Act.Range("J8").Value
            Milestone_Edit.Label6.Caption = Act.Range("K8").Value
            Milestone_Edit.Label7.Caption = Act.Range("L8").Value
            Milestone_Edit.Label8.Caption = Act.Range("M8").Value
            
            ThisWorkbook.Sheets("Actual").Range("C1") = Month(x) & "/" & Year(x)
            ThisWorkbook.Sheets("Actual").Range("D1") = Weekday(x)
            Base.Range("A2") = ""
            Act.Select
            Equipment_Edit.Show
       End If
     End If
    End Sub

    Celui-ci ne fonctionne pas (L'erreur apparaît sur la ligne 12 en orange).
    A noter que la valeur de ma cellule Data.Cells(5, 2) contient le nom du mois en texte:
    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
    Dim Data As Worksheet
    Set Data = ThisWorkbook.Sheets("Data")
    Dim DateMois As Variant
    Dim DateX As Variant
    Dim i As Integer
    i = 0
    DateMois = Data.Cells(5, i + 2)
    DateX = Data.Cells(6, i + 2)
    
    
    DateMois = Data.Cells(3, i + 2) & " " & Data.Cells(5, 2) & " " & Data.Cells(2, 3)
    DateX = Weekday(DateMois)
    If DateX  = "1" Or DateX = "7" Then
    Cells(5, i + 2).Value = "x"
    Cells(5, i + 2).Interior.ColorIndex = 16
    End If
    Aurai zappé quelquechose d'important?
    Merci pour votre aide et vos conseils
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Par défaut
    Ta cellule est au mm format que les autres?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    weekday() a besoin d'une date en paramètre.
    C'est quoi le jour de septembre pour toi ?
    Met un point d'arret pour contrôler la valeur de DateMois.

    eric

  4. #4
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Eric,
    J'ai bien mis un point d'arrêt (espion) sur DateMois, la valeur est "1 janvier 2015", janvier étant du texte saisi en Data.Cells(5, 2);
    Serait-ce cela le problème?
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Mets :
    DateMois as Date
    Tu seras sûr du type, là il a dû te le mettre en Range. Et si excel n'arrive pas à convertir en date tu verras plus facilement l'erreur.
    Il faut bien typer les variables, en plus d'être plus rapide c'est une aide. Garder Variant pour quand tu n'as pas le choix.

    Si tu n'y arrives pas il faudra déposer le fichier et expliquer comment reproduire l'erreur.
    eric

  6. #6
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour Eric,
    En forçant DateMois en Date cela ne résout pas mon problème car j'ai une donnée texte dans ma cellule Data.Cells(5, 2).
    Je vais contourner le problème en intégrant une donnée au format Date dans cette cellule.
    Merci tout de même
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

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

Discussions similaires

  1. [AC-2007] Appel d'une macro 2007 dans une macro en VBA
    Par evema dans le forum IHM
    Réponses: 1
    Dernier message: 13/12/2011, 22h35
  2. Requête fonctionnant sur ssms mais pas dans mon programme
    Par tumoo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/05/2011, 14h49
  3. utilisation d'une macro Excel dans une macro Word
    Par Tommy24 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/05/2011, 14h36
  4. Réponses: 10
    Dernier message: 18/04/2007, 17h17
  5. Comment insérer une macro excel dans une macro word?
    Par max2245 dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/01/2006, 17h44

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