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 :

Controle de saisie en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut Controle de saisie en VBA
    Bonjour, je suis débutant en VBA et je coince sur un probleme simple.
    Je souhaite faire un controle de saisie sur 4 cellules. A1,B1,C1 et D1.
    Autrement dit si une des cellules contient une valeur alors l'utilisateur doit remplir les 4 cellules. Si les 4 cellules sont remplis le système ne doit rien dire .
    Voila ce que j'ai essayé de faire mais cela ne marche pas lorsque les 4 cellules sont remplient...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Test_saisie()
    If Range("A1") > 0 Or Range("B1") > 0 Or Range("C1") > 0 Or Range("D1") > 0 Then
    MsgBox "toutes les cellules doivent etre saisies"
    Else
    If Range("A1") > 0 And Range("B1") > 0 And Range("C1") > 0 And Range("D1") > 0 Then
    MsgBox "ok"
     
    End If
    End If
    End Sub


    Merci pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 40
    Par défaut
    Bonsoir,

    essai ce morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Test_saisie()
    If Cells(1, 1).Value = "" Or Cells(1, 2).Value = "" Or Cells(1, 3).Value = ""  Or Cells(1, 4).Value = ""  Then
    MsgBox ("toutes les cellules doivent etre saisies")
    Else 
    MsgBox ("ok")
    End If
    End Sub
    Tiens nous au courant.

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut
    Merci pour la réponse mais cela ne semble pas fonctionner n'ont plus...
    En effet si les 4 cellules ne sont pas remplis, le message apparaît.
    Alors que je veux forcer la saisie uniquement si une des 4 cellules est remplie.
    Si rien n'est remplie le systeme ne doit pas réagir
    Je souhaite lancer ce code sur l'evenement sortie de la feuille

    Merci pour ton aide

    je crois que Mercatog a trouvé la solution...
    Merci à toi, je vais tester tout de suite
    bonne soirée

    super ca marche...
    Merci

    Merci pour ton aide Mercatog, juste une petit derniere question :
    Comment faire si les cellules sont éloignées les unes des autres.
    je dois vérifier la saisie sur la Cellule A7, E7 F7 et I7.
    bonne journée

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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 Test_saisie()
     Dim Plage As Range
     
    With Worksheets("Feuil1")                        'A adapter
    Set Plage = .Range("A7,E7,F7,I7")
        If Application.CountA(Plage) = 0 Then
            MsgBox "Toutes les cellules sont vides"
        Else
            If Application.CountA(Plage) < Plage.Count Then
                MsgBox "Toutes les cellules doivent etre saisies"
            Else
                MsgBox "Toutes les cellules sont remplies"
            End If
        End If
        Set Plage = Nothing
    End With
    End Sub

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut
    Ce forum est vraiment génial
    Merci et bravo...

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut on y est presque...
    Je bloque encore sur un truc.
    Je veux rendre la saisie obligatoire des 4 cellules uniquement si une des cellules de la Plage contient une information. si les 4 cellules sont vides le système ne fait rien.

    Autre point, je veux appliquer ce code sur plusieurs lignes.Chaque ligne représente un enregistrement.et le controle ce fait pour chaque enregistrement.

    Dois-je faire autant de module que de ligne ou bien y a t-il une solution plus simple

    Merci pour votre temps et patience
    Bon courage

  7. #7
    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 a tous

    meme si le sujet est résolu
    j'ai une autre proposition

    on pourrait obliger l'utilisateur au moment ou il selectionne la cellule dans la plage a1 a d1 a remplir la celulle precedante si elle est vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If ActiveCell.Column > 1 Then
    If Application.Intersect(ActiveCell, Range("A1:D1")) Is Nothing Then
     Else
    If ActiveCell.Offset(0, -1) = "" Then
    MsgBox "vous devez remplir la cellulle precedente"
    End If
    End If
    End If
    End Sub
    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

  8. #8
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Test_saisie()
     
    With Worksheets("Feuil1")                        'A adapter
        If Application.CountBlank(.Range("A1:D1")) = 4 Then
            MsgBox "Toutes les cellules sont vides"
        Else
            If Application.CountBlank(.Range("A1:D1")) > 0 Then
                MsgBox "Toutes les cellules doivent etre saisies"
            Else
                MsgBox "Toutes les cellules sont remplies"
            End If
        End If
    End With
    End Sub

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

Discussions similaires

  1. [VBA-E]controle de saisie dans une cellule
    Par greg778 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/03/2006, 16h43
  2. Définir propriété masque de saisie en VBA
    Par spidev dans le forum Access
    Réponses: 4
    Dernier message: 21/06/2005, 14h10
  3. DBGrid personnalisé (controle de saisie numérique et date).
    Par abdelghani_k dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/04/2005, 18h50
  4. ptit probleme de controle de saisie de formulaire
    Par coachbob44 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 24/03/2005, 14h09
  5. [LG]contrôle de saisie
    Par zetterberg_10 dans le forum Langage
    Réponses: 8
    Dernier message: 10/02/2005, 13h55

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