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 :

si plus qu'une case est remplie en ligne alors afficher Erreur


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut si plus qu'une case est remplie en ligne alors afficher Erreur
    Bonsoir tout le monde ,

    SVP , je veux une macro qui réalisera pour ce tableau dans n'importe quelle ligne de ce tableau si la personne remplit plus d'une case alors

    MsgBox "Error, veuillez remplir une seule case"



    Merci d'avance
    Images attachées Images attachées  

  2. #2
    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

    rien de bien compliqué
    il te suffit de gérer l' évènement selection change du sheets en question
    exemple ici on gère la plage A1:G20
    des que tu sélection une ligne si sur cette ligne une cellule est déjà remplie le message s'affiche et te sort de la sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set plage = Range("A1:g20")
    Set isect = Application.Intersect(plage, Selection)
    If Not isect Is Nothing Then
        For i = 1 To plage.Columns.Count
            If Cells(Selection.Row, i) <> "" Then
                MsgBox "cette ligne est deja remplie"
                Exit Sub
            End If
        Next
    End If
    End Sub
    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

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut
    Merci Mais en fait le but c'est pas de dire cette ligne est déjà remplie pour chaque ligne ,

    ce que je veux c'est dès que la personne remplit plus qu'une case dans une ligne le msg d'erreur s'affiche et pour les lignes où on a une seule case remplie à ne rien afficher

  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 re
    ok

    donc ce sera l'évènement change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    Set plage = Range("A1:g20")
    Set isect = Application.Intersect(plage, Selection)
    If Not isect Is Nothing Then
        For i = 1 To plage.Columns.Count
            If Cells(Target.Row, i) <> "" And Cells(Target.Row, i) <> Target Then
                MsgBox "cette ligne est deja remplie"
                Exit Sub
            End If
        Next
    End If
    End Sub
    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 confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut
    Monsieur Patrick , j'ai essayé mais ça n'a pas marché

    Pouvez vous la vérifier dans ce fichier joint Excel si c'est possible ?

    je m'excuse et merci d'avance
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour à tous,

    Et pourquoi pas une simple Validation avec =NBVAL($A2:$C2)<2 ?
    eric

    edit : ton fichier
    Fichiers attachés Fichiers attachés

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 113
    Par défaut
    eriiiic c'est aussi simple

    merciiiiiii

  8. #8
    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 re
    rebonjour

    eriic c'est une formule excel on est pas sur le bon forum pour ca



    rihab92 ton fichier fonctionne très bien chez moi et fait exactement ce qui est demandé dans le post initial
    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

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Re,

    eriic c'est une formule excel on est pas sur le bon forum pour ca
    C'est clair.
    Mais parfois les demandeurs ne connaissent pas les fonctionnalités de base d'excel.
    Ca ne mange pas de pain de leur signaler au cas où, tant pis si c'est à coté de la plaque.
    Bonne soirée tout le monde.
    eric

  10. #10
    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 re
    salut eriic

    les formules c'est bien aussi mais disons que si il veut agir en fonction de cet évènement les formules Excel sont limitées

    par exemple ici il veut un msgbox sans faire de fonction en public il n'y arrivera pas sans vba

    mais mille excuse si je t'ai paru sec ca n'était pas mon intention
    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

  11. #11
    Invité
    Invité(e)
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim txt As String
    if Target.Row> 1 then
       For i = 0 To 2
          txt = txt & trim("" &  Cells(Target.Row, 1).Offset(0, i))
      Next
    end if
    If Len(txt) > 1 Then MsgBox "Err"
    End Sub
    Edit: If Target.Row> 1 then
    Dernière modification par Invité ; 02/03/2015 à 14h50.

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour patrick,

    mais mille excuse si je t'ai paru sec ca n'était pas mon intention
    Non, non. Aucun soucis, c'est exact que c'est un forum vba :-)
    Et puis autant parler net, mais là il n'y avait vraiment rien de choquant.
    eric

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

Discussions similaires

  1. tableaux:Savoir si une case est vide
    Par pepsi33 dans le forum C++
    Réponses: 6
    Dernier message: 22/11/2007, 21h47
  2. Vérifier si au moins une case est cochée
    Par ozzmax dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 05/07/2007, 16h34
  3. Réponses: 3
    Dernier message: 20/11/2006, 10h45
  4. Vérifier si une case est cochée
    Par Nadd dans le forum Langage
    Réponses: 2
    Dernier message: 24/03/2006, 19h47
  5. Réponses: 2
    Dernier message: 08/08/2005, 14h33

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