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 :

3 codes en 1


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 105
    Points : 55
    Points
    55
    Par défaut 3 codes en 1
    J ai 3 codes successifs qui s'enchainent et j aimerais en faire qu' un seul pour qu'il n y ait qu' une Msgbox
    j ai essayé de les regrouper en supprimant les deux premières msgbox mais sa ne fonctionne pas

    Merci d'avance

    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
    Sub Vérifications_1()
     
        Const AG = "MDL"
        Const TYP = "CL"
     
        With Feuil1.Cells(1).CurrentRegion
     
            For R& = 1 To .Rows.Count
     
                If .Cells(R, 9).Text = AG And .Cells(R, 5).Text = TYP And .Cells(R, 3).Value < Date And Cells(R, 7).Value = 1 Then
     
                    T$ = T$ & vbLf & .Cells(R, 5).Text & vbTab & vbTab & .Cells(R, 4).Text & vbTab & vbTab & .Cells(R, 1).Text & vbTab
     
                End If
     
            Next
     
        End With
     
        If T <> "" Then
     
            MsgBox "CL en date dépassée !" & Chr(10) & "Veuillez les régulariser et Editer un nouvel état de parc !" & Chr(10) & Chr(10) & "Typ Doc" & vbTab & vbTab & "No de Doc" & vbTab & "Immat" & T, vbExclamation, "   EN DATE DEPASSEE " & AG
     
        Else
     
            MsgBox "Pas de CL en date dépassée !"
            Call Vérifications_2
        End If
     
    End Sub
    Code 2
    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
    Sub Vérifications_2()
     
        Const AG = "MDL"
        Const TYP = "CP"
        With Feuil1.Cells(1).CurrentRegion
     
            For R& = 1 To .Rows.Count
     
                If .Cells(R, 9).Text = AG And .Cells(R, 5).Text = TYP And .Cells(R, 3).Value < Date And Cells(R, 7).Value = 1 Then
     
                    T$ = T$ & vbLf & .Cells(R, 5).Text & vbTab & vbTab & .Cells(R, 4).Text & vbTab & vbTab & .Cells(R, 1).Text & vbTab
     
                End If
     
            Next
     
        End With
     
        If T <> "" Then
     
            MsgBox "CP en date dépassée !" & Chr(10) & "Veuillez les régulariser et Editer un nouvel état de parc !" & Chr(10) & Chr(10) & "Typ Doc" & vbTab & vbTab & "No de Doc" & vbTab & "Immat" & T, vbExclamation, "   EN DATE DEPASSEE " & AG
     
        Else
     
            MsgBox "Pas de CP en date dépassée !"
            Call Vérifications_3
        End If
     
    End Sub
    Code 3
    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
    Sub Vérifications_3()
     
        Const AG = "MDL"
        Const TYP = "MV"
        With Feuil1.Cells(1).CurrentRegion
     
            For R& = 1 To .Rows.Count
     
                If .Cells(R, 9).Text = AG And .Cells(R, 5).Text = TYP And .Cells(R, 3).Value < Date And Cells(R, 8).Value = 1 Then
     
                    T$ = T$ & vbLf & .Cells(R, 5).Text & vbTab & vbTab & .Cells(R, 4).Text & vbTab & vbTab & .Cells(R, 1).Text & vbTab
     
                End If
     
            Next
     
        End With
     
        If T <> "" Then
     
            MsgBox "Mouvements en date dépassée !" & Chr(10) & "Veuillez les régulariser et Editer un nouvel état de parc !" & Chr(10) & Chr(10) & "Typ Doc" & vbTab & vbTab & "No de Doc" & vbTab & "Immat" & T, vbExclamation, "   EN DATE DEPASSEE " & AG
     
        Else
     
            MsgBox "Pas de Mouvements en date dépassée !"
     
        End If
     
    End Sub

  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
    12 760
    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 : 12 760
    Points : 28 618
    Points
    28 618
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu crées une boucle où au lieu d'utiliser trois fois la même constante, tu places places les valeurs CL, CP et MV dans une variable tableau.
    Exemple pour la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim Typ(), nb As Byte
     Typ = Array("CL", "CP", "MV")
     For nb = 0 To UBound(Typ)
      MsgBox Typ(nb)
     Next
    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 du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    Aie je suis un peu dépassé là !
    je n ai pas encore cette notion de boucle ... suis un vrai débutant
    et je n ai pas encore vu cette fonction

    Dois je placer ce code juste avant les conditions ?

  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
    12 760
    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 : 12 760
    Points : 28 618
    Points
    28 618
    Billets dans le blog
    53
    Par défaut
    Bonjour,

    Mais non, tu écris ton code dans la boucle et tu remplaces la constante Typ par la variable Typ(Nb) dont nb est indicé par la boucle.
    J'ai expressément utilisé la même orthographe Typ en me disant que tu comprendrais. As-tu seulement fais tourner la petite procédure que j'ai publiée ?

    Attention que j'ai lu en vitesse tes trois procédures et que je n'ai vu que cette différence. Il y en a peut-être d'autres
    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
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    bon j abandonne
    je vais garder les 3 codes le temps que j arrive a créer cette fameuse boucle

    merci encore

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 760
    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 : 12 760
    Points : 28 618
    Points
    28 618
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il me semble pourtant que mon explication était claire
    1) Placer la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Verif()
     Dim Typ(), nb As Byte
     Typ = Array("CL", "CP", "MV")
     For nb = 0 To UBound(Typ)
     ' ici insérer le code d'une de tes procédures 
     Next
    End Sub
    2) Insérer le code d'une des procédures
    3) Remplacer la constante Typ par Typ(nb), manuellement ou (c'est mieux), à l'aide de la boîte de dialogue Rechercher/Remplacer de l'éditeur de VBA (Ctrl+H)
    4) Ne pas oublier de supprimer la déclaration de la constante Typ pour éviter toute ambiguïté et bien entendu l'instruction qui appelle les autres procédures Call Verification_X devenu inutile.
    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

  7. #7
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 105
    Points : 55
    Points
    55
    Par défaut
    Bonsoir Philippe

    merci pour ton aide sa fonctionne impeccable !

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 760
    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 : 12 760
    Points : 28 618
    Points
    28 618
    Billets dans le blog
    53
    Par défaut
    Bonsoir,

    Comme quoi, "Quand on s'y colle", c'est mieux que le Copier/Coller
    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. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 02h17
  2. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 11h29
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  4. Explorateur de code C
    Par Zero dans le forum C
    Réponses: 14
    Dernier message: 06/06/2002, 09h41
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

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