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 :

Changement de message d'erreur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut Changement de message d'erreur
    Bonjour,
    J'ai crée 2 boutons : copier et coller.
    Au fait quand je clique sur coller sans cliquer sur copier avant, j'ai un message d'erreur 1004, c'est normal. Mais , je voudrais changer ce message et mettre par "Attention vous n'avez pas cliquez sur copier".
    Comment faire?
    Est ce que quelqu'un a une idée?

    Voici le code de mes 2 boutons:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub B_COPIER_Click()
        lngLigne = ActiveCell.Row
        Range("C" & lngLigne & ":AZ" & lngLigne).Copy
    End Sub
    Private Sub B_COLLER_Click()
        lngLigne = ActiveCell.Row
        Range("C" & lngLigne).Select
        ActiveSheet.Paste
        Range("D" & lngLigne).ClearContents
        Range("F" & lngLigne).Select
        application.CutCopyMode = False
    End Sub
    Merci

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Le mieux serait peut-être de jouer sur la Proprièté "visble" de ton bouton coller qui ne serait du coup accessible que si on est passé par le bouton copier.
    Ou sa propriété "Enabled", visible, mais pas trop et inactif

    Ou employer une variable "drapeau" (Booléenne) qui passe de false à true avec copier et qui permet ou non le code de coller...

    selon le contexte....

    cordialement,

    Didier

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut
    Merci Didier pour ta réponse.
    Mais, je suis novice en VBA.
    Comment je peux coder ça?
    Merci

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    moi, je te prooserais simplement de mettre une variable déclarée public au début de tes procédures
    exemple :
    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
    Private Sub B_COPIER_Click()
    verif = 1'variable à déclarer public
        lngLigne = ActiveCell.Row
        Range("C" & lngLigne & ":AZ" & lngLigne).Copy
    End Sub
    Private Sub B_COLLER_Click()
    if verif = 1 then
        lngLigne = ActiveCell.Row
        Range("C" & lngLigne).Select
        ActiveSheet.Paste
        Range("D" & lngLigne).ClearContents
        Range("F" & lngLigne).Select
        application.CutCopyMode = False
    else
    msgbox "Attention vous n'avez pas cliquez sur copier"
    end if
    verif = 0
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour

    notes :
    1) il serait très conseillé de mettre option explicit (voir aide vba sur explicit = TB) par défaut, ici tu as des variables non déclarées ce qui entraînera rien de bon
    2) Pour le genre de variable évoquée, il suffit ici de la mettre en déclaration en haut du module pour que sa portée soit suffisante. Sachant qu'une variable Public doit se déclarer dans un module standart...
    voir : http://silkyroad.developpez.com/VBA/LesVariables/

    3) casefayere les variables booléennes sont spécialisées dans ce genre d'emploi (drapeau), elles ne prennent comme valeur que vrai ou faux...

    ce qui donnerait du genre :

    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
    Dim blnDrap As Boolean
     
    Private Sub cmdCopier_Click()
    lngLigne = ActiveCell.Row
        Range("C" & lngLigne & ":AZ" & lngLigne).Copy
    'à l'initialisation blnDrap est à False !
    blnDrap = True
    End Sub
    Private Sub cmdCOLLER_Click()
    If blnDrap = True Then
        lngLigne = ActiveCell.Row
        Range("C" & lngLigne).Select
        ActiveSheet.Paste
        Range("D" & lngLigne).ClearContents
        Range("F" & lngLigne).Select
        Application.CutCopyMode = False
    End If
    blnDrap = False
    End Sub
    ps : j'ai schématisé et non vérifié ton code....

    Piste 2 :

    Dans l'éditeur vba, tu as à gauche (ou faire afficher) la fenêtre propriété, quand ton bouton est sélectionné (mode création), tu as toutes les propriétés de ton bouton, pour commencer, tu mets Enabled de copier à False. Tu peux agir direct ici pour l'initialisation ou via le vba comme ci-dessous

    Le bouton est alors visible, mais non activable, c'est plus classe , en jouant de même sur la propriété Visible, tu auras le même résultat, mais avec disparition complète..

    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
    Private Sub cmdCopier_Click()
    lngLigne = ActiveCell.Row
        Range("C" & lngLigne & ":AZ" & lngLigne).Copy
    'à l'initialisation blnDrap est à False !
    cmdCOLLER.Enabled = True
    End Sub
    Private Sub cmdCOLLER_Click()
     
    lngLigne = ActiveCell.Row
    Range("C" & lngLigne).Select
    ActiveSheet.Paste
    Range("D" & lngLigne).ClearContents
    Range("F" & lngLigne).Select
    Application.CutCopyMode = False
    cmdCOLLER.Enabled = False
    End Sub
    cordialement,

    Didier

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Merci du conseil, j'ai encore du chemin à faire

    encore une connaissance de plus

    à +
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/08/2007, 13h31
  2. Réponses: 4
    Dernier message: 04/03/2003, 01h05
  3. [CR] Message d'erreur
    Par nono1 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/09/2002, 14h54
  4. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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