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 :

utilisation de Select Case


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut utilisation de Select Case
    Bonjour,
    je suis entrain de préparer un programme VBA Excel pour le calcul de la date prévue de réception de commandes.
    cette date est calculée à partir de la date de changement du statut de cette commande + une durée estimée pour la réception de cette commande à partir de la date de changement du statut
    la durée éstimée et fonction aussi du mode de transport.
    la première étape j'ai inserrer une nouvelle colonne puis j'ai déclarée des variables aprés çà j'ai utiliée l'instruction Select Case
    mais çà ne marche pas
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Sub MacDate_Réception()
        Worksheets("OO_Suivi_Engagement").Columns("F:F").Insert Shift:=xlToRight
        'Statut de la commande
        Dim Statut As String
        'Mode de transport
        Dim Transp As Variant
        'Date de changement de statut
        Dim DayMAJ As Variant
        'Date prévue de réception de la commande
        Dim DayRec As Variant
        DayMAJ = Range("E2")
        Statut = Range("C2")
        Transp = Range("D2")
     
        Select Case Statut
            Case Is = P
                DayRec = DayMAJ + 7
            Case Is = ROS
                DayRec = DayMAJ + 14
            Case Is = RFD
                DayRec = DayMAJ + 21
            Case Is = INC
                DayRec = DayMAJ + 28
            Case Is = SHP
                Select Case Transp
                    Case Is = Air
                      DayRec = DayMAJ + 35
                    Case Is = Sea
                      DayRec = DayMAJ + 49
                    Case Is = Groupage
                      DayRec = DayMAJ + 64
                    Case 0
                      DayRec = DayMAJ + 35
                End Select
            Case RFA
                Select Case Transp
                    Case Is = Air
                      DayRec = DayMAJ + 35 + 14
                    Case Is = Sea
                      DayRec = DayMAJ + 49 + 14
                    Case Is = Groupage
                      DayRec = DayMAJ + 64 + 14
                    Case 0
                      DayRec = DayMAJ + 35 + 14
                End Select
            Case RFC
                Select Case Transp
                    Case Is = Air
                      DayRec = DayMAJ + 35 + 14 + 14
                    Case Is = Sea
                      DayRec = DayMAJ + 49 + 14 + 14
                    Case Is = Groupage
                      DayRec = DayMAJ + 64 + 14 + 14
                    Case 0
                      DayRec = DayMAJ + 35 + 14 + 14
                End Select
        End Select
     
     
    End Sub
    veuillez, s'il vous plaît m'aider à résoudre ce problème
    pour votre information je suis débutant en programation VBA

    Mouna

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Je n'ai pas bien étudier ta macro mais commence par changer tes Case IS par
    exemple..
    à la place de
    Quand c'est modifié revient avec ton code..
    A+

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut non plus çà ne marche pas
    Erreur d'exécution 13

    incompatibilité de type

    et s'arrète à la ligne

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Il faudrait que tu spécifie la feuille, quand tu essaye la fonction à partir du module il n'est pas préciser sur quel feuille tu veux agir donc ...

    Au déut spécifie..
    A+
    EDIT:
    Et statut devrait êre déclare par
    EDIT 2:
    Revient avec ton code je vais essayé de le rendre opérationnel.

    et où sont affectées les variables P, ROS, RFD etc..
    Nouveau poste pour le copier/coler
    A+

  5. #5
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Un petit doute
    est ce qu'il ne faut pas mettre des guillemets ?

    Est ce que Air est une constante? (Air et les autres)
    sinon il faut écrire

    Case Is = "Air"

    Salutations

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Une question demeure : Où prends-tu ton P ? Dans ta procédure, on ne le voit nulle part. Une variable déclarée en Public ?

  7. #7
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut
    P est une valeur du "Statut" de la commande et voici toutes les abréviations que peut prendre ce STATUT:
    RFC: Ready for Collection
    RAF: Recieved at Forwarders
    SHP: Shipped
    INC: In Customs
    RFD: Ready for Delivery
    ROS: Recieved on Site
    P: In the course of execution

    Vous trouverez aussi en pièce jointe un exemple des données dont je désire traiter
    LeForestier a dit:
    Il faudrait que tu spécifie la feuille, quand tu essaye la fonction à partir du module il n'est pas préciser sur quel feuille tu veux agir donc ...

    la feuille est spécifiée au dessus sauf que je ne l'ai pas mise dans la portion du code dans le message

    donc ce programme est censé remplir la colonne Date prévue de réception

    Merci à tous

    Mouna
    Fichiers attachés Fichiers attachés

  8. #8
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Ben l'es pas prêt d's'en sortir avec toutes ces réponses lol

    c'est si simple
    Voir pour éviter toute erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select case ucase(Statut)
        Case "P"
        etc.

  9. #9
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut
    Toujours dans l'impasse!!!!!!!!!!!!!

  10. #10
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Avec autant de détails dans les réponses ...


    J'ai testé
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Function MacDate_Réception(DayMAJ As Date, Statut As String, Transp As String)
        'Worksheets("OO_Suivi_Engagement").Columns("F:F").Insert Shift:=xlToRight
        'Statut de la commande
        'Dim Statut As String
        'Mode de transport
        'Dim Transp As Variant
        'Date de changement de statut
        'Dim DayMAJ As Variant
        'Date prévue de réception de la commande
        'Dim DayRec As Variant
        'DayMAJ = Range("E2")
        'Statut = Range("C2")
        'Transp = Range("D2")
     
        Select Case Statut
            Case "P"
                DayRec = DayMAJ + 7
            Case "ROS"
                DayRec = DayMAJ + 14
            Case "RFD"
                DayRec = DayMAJ + 21
            Case "INC"
                DayRec = DayMAJ + 28
            Case "SHP"
                Select Case Transp
                    Case "Air"
                      DayRec = DayMAJ + 35
                    Case "Sea"
                      DayRec = DayMAJ + 49
                    Case "Groupage"
                      DayRec = DayMAJ + 64
                    Case "0"
                      DayRec = DayMAJ + 35
                End Select
            Case RFA
                Select Case Transp
                    Case "Air"
                      DayRec = DayMAJ + 35 + 14
                    Case "Sea"
                      DayRec = DayMAJ + 49 + 14
                    Case "Groupage"
                      DayRec = DayMAJ + 64 + 14
                    Case "0"
                      DayRec = DayMAJ + 35 + 14
                End Select
            Case RFC
                Select Case Transp
                    Case "Air"
                      DayRec = DayMAJ + 35 + 14 + 14
                    Case "Sea"
                      DayRec = DayMAJ + 49 + 14 + 14
                    Case "Groupage"
                      DayRec = DayMAJ + 64 + 14 + 14
                    Case "0"
                      DayRec = DayMAJ + 35 + 14 + 14
                End Select
        End Select
     
        MacDate_Réception = DayRec
    End Function
    en utilisant la formule de feuille suivante en colonne F
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MacDate_Réception(E2;C2;D2)
    et cela marche ... à part quelques reours non traité qui ne concerne pas le problème soulevé
    alors je ne vois donc pas pourquoi le
    Toujours dans l'impasse!!!!!!!!!!!!!

  11. #11
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Par défaut Youpi çà marche

    En fin c'est la fin de mon calvaire
    merci à vous tous
    Vous êtes vraiment gentils
    ce forum le nbre one bravo brao et bravo

    votre Mouna

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

Discussions similaires

  1. Utiliser une boucle "For" dans un" Select Case"
    Par Novice_vba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/04/2014, 09h34
  2. Utilisation select case
    Par patmar83 dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/06/2013, 19h49
  3. [AC-2007] Utilisation select case
    Par cfiji dans le forum VBA Access
    Réponses: 7
    Dernier message: 30/05/2013, 14h35
  4. utilisation select case
    Par patmar83 dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/03/2012, 15h47
  5. utilisation de select case
    Par triaguae dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/12/2007, 16h04

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