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 :

Vérificaton de cellule avant excécution d'une macro [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Par défaut Vérificaton de cellule avant excécution d'une macro
    Bonjour,

    Je recherche un code qui me premait de vérifier que plusieur cellule ne soit pas vide avant d'excecuter une macro.

    J'ai trouver ceci mais il verifi qu'une cellule hors moi je veux plusieur cellule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If Range("D5") > 0 Then
        'J'exécute la macro
     
    ElseIf Range("D5") = 0 Then
       MsgBox "Erreur: Veuillez saisir un personnel !!", vbExclamation
    End If
    Les cellules a vérifier sont: D5; D7; D10

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    salut,
    tu peux essayer en mettant "and" ou "or" comme çà comme tu n'as pas beaucoup de cellules à vérifier. ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Si D5 est plein et si D7 ... et si D10 .... alors
    If Range("D5") <> "" and Range("D7") <> "" and Range("D10") <> ""  Then
        'J'exécute la macro
    End If
    Tu peux remplacer And par "or" ça ferait:
    Si D5 est plein ou si D7 est plein ou si D10..... Alors

  3. #3
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,


    Il y a plusieurs solutions pour faire ce que tu demandes, 3 if par exemples.
    Je te propose une solution :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim Maplage As Range, MesCellules As Range
    Set Maplage = Union([D5], [D7], [D10])
    ' Set Maplage = Maplage.SpecialCells(xlCellTypeBlanks)
     
    For Each MesCellules In Maplage
        If MesCellules = Empty Then
            MsgBox "Erreur: Veuillez saisir un personnel !!" & vbCrLf & "Dans la cellule " & MesCellules.Address, vbExclamation
            Exit For
        End If
    Next MesCellules

  4. #4
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    Cependant, attention avec le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Range("A1") <> "" then
    par ce que si la cellule contient un espace, le test est faux et l'exeption n'est pas gérée.

    Mieux vaut utiliser la méthode de aalex_38.

  5. #5
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Salut aalex_38,
    je ne connaissais pas l'instruction "union" je l'a retient, ça faisait un moment que je n'étais pas venus j'suis content d'apprendre de nouveaux trucs enfin nouveau pour moi.

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    "je ne connaissais pas l'instruction "union" je l'a retient, ça faisait un moment que je n'étais pas venus j'suis content d'apprendre de nouveaux trucs enfin nouveau pour moi.
    "

    Je ne viens plus très souvent non plus, on apprend toujours les uns les autres, parfois je regarde vos sujets et j'apprends aussi.

    par ce que si la cellule contient un espace, le test est faux et l'exeption n'est pas gérée.

    Mieux vaut utiliser la méthode de aalex_38.
    En fait non, le résultat est le même un espace <> empty (si si j'ai fait le test)

  7. #7
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    Citation Envoyé par aalex_38 Voir le message
    "
    En fait non, le résultat est le même un espace <> empty (si si j'ai fait le test)
    C'est ce que j'ai dis

    Bref.

    La fonction Union est-elle equivalente a celle ci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set maPlage = Range("D1,D4,E8,F6")

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

Discussions similaires

  1. [XL-2007] Récupérer l'adresse d'une cellule sans passer par une macro
    Par Runsh63 dans le forum Excel
    Réponses: 4
    Dernier message: 28/04/2014, 16h09
  2. Remplir une ligne à partir d'une cellule à l'aide d'une macro
    Par mathilde13870 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/03/2014, 15h56
  3. [XL-2010] Allez à la cellule source en activant une macro
    Par APLOMB dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/12/2013, 15h20
  4. [XL-2010] Allez à la cellule source en activant une macro
    Par APLOMB dans le forum Excel
    Réponses: 1
    Dernier message: 22/12/2013, 21h28
  5. Réponses: 2
    Dernier message: 18/12/2011, 00h42

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