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 :

premiere partie du "if" non pris en compte


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
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Par défaut premiere partie du "if" non pris en compte
    Bonjour à tous

    J'ai un petit souci avec cette macro qui ne prend pas en compte la première partie de mon 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
    Sub enregistrezsous()
     
     
    Dim Outilstats As Workbook
    Dim Nomfichier As String
    Dim sh As Variant
    Dim NameSht As String
    Dim ShtExist As Boolean
    'shtindex = Sheets(3)
    NomSht1 = Sheets("Accueil").Range("Z7").Value
    NomSht2 = Sheets("Accueil").Range("Z8").Value
    Nomfichier = Sheets("Accueil").Range("Z6").Value
    Set F = Sheets(3)
    If F Is Nothing Then
    Call MsgRec
    'msgbox "Aucun rapport n'a été généré, l'enregistrement est impossible", vbExclamation
    End
    Else
    Sheets(Array(NomSht1, NomSht2)).Copy
    If Application.Dialogs(xlDialogSaveAs).Show(arg1:="c:\" & Nomfichier) = False Then Exit Sub
     
    End If
    End Sub
     
    Sub MsgRec()
    msgbox "Aucun rapport n'a été généré, l'enregistrement est impossible", vbExclamation
    End
     
    End Sub
    La macro ne prend pas en compte le call MsgRec qui appel une msg box et arrete la macro.J'ai essayé beaucoup de variantes mais je n'ai rien trouvé pour résoudre le problème...

    Si quelqu'un a une idée du problème, n'hésitez pas!

    Merci beaucoup et bon week end !!

    François

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour,

    la macro a bon dos car car elle fait ce qu'on lui demande !

    Et même si c'est mal programmé, elle ne peut le savoir et effectue donc que ce qui lui est demandé et rien d'autre !

    Donc à suivre en mode pas à pas pour voir ce qu'il se passe, tellement évident pourtant à la lecture de la ligne n°13 …

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    Bonsoir

    Tout d'abord, je te suggere d'utiliser les retraits pour améliorer la lecture de ton code.

    ensuite,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set F = Sheets(3)
    If F Is Nothing Then
    Si la première ligne passe, la condition ne sera jamais vraie!
    tu n'es pas d'accord?

    christophe

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour
    je dirais aussi que utiliser l'index du sheets et non son vrai nom peut apporter des problèmes si il y a plus de 3 feuille dans le classeur

    je testerais le nom moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each fel in worksheets
    if fel.name="toto" then ....
    next
    comme ca on est sur et en plus il n'y a pas d'erreurs a gérer

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2013
    Messages : 25
    Par défaut
    Bonjour et merci pour votre aide,

    le problème c'est que je suis obligé d'utiliser l'index étant donnée que ma feuille a un nom variable. Je vais essayer de voir pour la ligne 13 même si je suis pas certain d'avoir saisi..

    Finalement je me suis résolu à mettre un "on error goto" pour palier à mon problème qui persistait malgré vos indications. voici mon code pour ceux que ça pourra aider :

    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
    Sub enregistrezsous()
     
     
    Dim Outilstats As Workbook
    Dim Nomfichier As String
     
    On Error GoTo msgrec
     
    NomSht1 = Sheets("Accueil").Range("Z7").Value
    NomSht2 = Sheets("Accueil").Range("Z8").Value
    Nomfichier = Sheets("Accueil").Range("Z6").Value
     
    Sheets(Array(NomSht1, NomSht2)).Copy
    If Application.Dialogs(xlDialogSaveAs).Show(arg1:="c:\" & Nomfichier) = False Then Exit Sub
     
    msgrec: msgbox "Aucun rapport n'a été généré, l'enregistrement est impossible", vbExclamation
    End
     
    End Sub

    Bonne journée

    François

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

Discussions similaires

  1. [QR 4.05] Propriété imprimante non pris en compte
    Par portu dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 30/09/2008, 14h21
  2. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57
  3. [event] keyListener non pris en compte
    Par pierre.zelb dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/08/2005, 08h35

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