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 :

Macro et dates


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Par défaut Macro et dates
    Bonjour à tous,
    Pourriez vous m'aider encore? Je cherche à imprimer la feuil2, seulement si la date de la cellule A1 de la Feuil3 à moins de 3 jours...?

    Merci

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     If Sheets("Feuil3").Range("A1") > Now - 3 Then
        'impression
     Else
        MsgBox ("Plus de 3 jours")
     End If

  3. #3
    Membre averti
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Par défaut
    Bonjour Helas, merci d'avoir répondu
    J'ai réussi à mettre la condition en fonction de la date mais maintenant ce sont les IF le problème. La MsgBox s'affiche plusieurs fois au lieu de tenir compte du GoTo ...

    Voila ce que j'essai de coder:


    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
    Sub PrintDoc()
     
    Dim la_date As Date
    la_date = Sheets("Commande").Range("J1").Value
     
    If la_date < Now() - 2 Then
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    GoTo STOPPP
    End If
     
    'Si clic sur ANNULER
    If MsgBox("La commande à été mise à jour le " & la_date & ", voulez vous l'imprimer?", vbYesNoCancel + vbDefaultButton1 + vbInformation, "Commande") = vbCancel Then
    GoTo Line2
    End If
     
    'Si clic sur NON
    If MsgBox("La commande à été mise à jour le " & la_date & ", voulez vous l'imprimer?", vbYesNoCancel + vbDefaultButton1 + vbInformation, "Commande") = vbNo Then
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    GoTo Line2
    End If
     
    'Si clic sur OUI
    If MsgBox("La commande à été mise à jour le " & la_date & ", voulez vous l'imprimer?", vbYesNoCancel + vbDefaultButton1 + vbInformation, "Commande") = vbYes Then
    GoTo Line1
    End If
     
     
    Line1:
    ActiveWorkbook.PrintOut
     
     
    Line2:
     
    End Sub

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    bonjour,

    je ne comprend pas pourquoi tu utilises des GOTO dans ton code


    voici une proposition à continuer, ne sachant pas ce que fait ton Goto STOPPP

    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
    Sub PrintDoc()
    Dim la_date As Date
    la_date = Sheets("Commande").Range("J1").Value
     
    If la_date < Now() - 2 Then
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
       GoTo STOPPP
    End If
     
    Select Case MsgBox("La commande à été mise à jour le " & la_date & ", voulez vous l'imprimer?", vbYesNoCancel + vbDefaultButton1 + vbInformation, "Commande")
        Case vbNo
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        Case vbYes
            ActiveWorkbook.PrintOut
    End Select
     
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Par défaut
    Bonjour,
    Désolé pour le temps de réponse, j'étais en déplacement.

    Le GoTo Stopp était un essai que j'ai oublié de supprimer.

    J'ai testé ta macro mais j'ai toujours un problème avec la date.
    La macro n'en tient pas compte et m'affiche toujours la msgBox.

    J'ai juste modifié la fin puisque je veux imprimer 2 onglets en cas de vbYes.

    Et quelle fonction puis-je ajouter à vbCancel pour qu'il stop l'impression en cours?

    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
    Sub PrintDoc()
    Dim la_date As Date
    la_date = Sheets("Commande Bocaux").Range("J1").Value
     
    If la_date < Now() - 2 Then
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
     
    End If
     
    Select Case MsgBox("La commande de bocaux à été mise à jour le " & la_date & ", voulez vous l'imprimer?", vbYesNoCancel + vbDefaultButton1 + vbInformation, "Commande Bocaux")
        Case vbNo
            Sheets("Commande").Select
            ActiveWindow.SelectedSheets.PrintOut Copies:=1
        Case vbYes
            Sheets("Commande Bocaux").Select
            ActiveWindow.SelectedSheets.PrintOut Copies:=1
            Sheets("Commande").Select
            ActiveWindow.SelectedSheets.PrintOut Copies:=1
    End Select
     
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu veux que la boite de message ne s'affiche que si la date est inférieure à 3 jour par rapport au jour actuel ?
    Dans ce cas, il te faut incorporer le code dans le bloc If :
    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 PrintDoc()
     
        Dim la_date As Date
     
        la_date = Sheets("Commande Bocaux").Range("J1").Value
     
        If la_date < Now() - 2 Then
     
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
     
            Select Case MsgBox("La commande de bocaux à été mise à jour le " & la_date & ", voulez vous l'imprimer?", vbYesNoCancel + vbDefaultButton1 + vbInformation, "Commande Bocaux")
     
                Case vbNo
     
                    Sheets("Commande").Select
                    ActiveWindow.SelectedSheets.PrintOut Copies:=1
     
                Case vbYes
     
                    Sheets("Commande Bocaux").Select
                    ActiveWindow.SelectedSheets.PrintOut Copies:=1
                    Sheets("Commande").Select
                    ActiveWindow.SelectedSheets.PrintOut Copies:=1
     
            End Select
     
        End If
     
    End Sub
    mais pourquoi ceci avant la boite de message ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Hervé.

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

Discussions similaires

  1. Macro -filtre date
    Par MisterVBA dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/03/2010, 15h22
  2. [XL-2007] macro filtrer date a date enregistree ne marche pas
    Par petahum dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/11/2009, 18h57
  3. Macro Format date
    Par roidurif dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/02/2009, 18h29
  4. Macro conversion date
    Par John81 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/10/2008, 22h55
  5. Interprétation macro variable date
    Par ash_rmy dans le forum Macro
    Réponses: 7
    Dernier message: 05/05/2008, 13h37

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