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 :

Ne pas enregistrer si doublon [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable de trafic
    Inscrit en
    Juin 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable de trafic

    Informations forums :
    Inscription : Juin 2018
    Messages : 8
    Par défaut Ne pas enregistrer si doublon
    Bonjour à tous,

    Je me lance dans le VBA pour créer un répertoire téléphonique pour le travail.
    Forcement j'ai 2 gros problèmes qui m'agace depuis 1 semaine:

    -Si ma combobox1 est vide => message d'erreur au lancement de l'enregistrement et pas d'enregistrement (KO -> message d'erreur + message d'information sur le bon enregistrement. par contre ça n'enregistre pas comme programmé)
    - Si ma combobox 1 est rempli => message d'information (OK)


    Dans ma combobox1, on peux consulter aussi les information relative à celle ci. par contre je n'arrive pas a trouver le code pour si le même nom est déjà enregistrer, afficher un message d'alerte + ne pas enregistrer + dans ce cas ne pas enlever les informations misent dans le formulaire pour pouvoir les modifier.

    je vous fourni mon travail, ça sera plus parlant car je suis pas claire dans mes explications.

    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,
    Citation Envoyé par Zinbot Voir le message
    par contre je n'arrive pas a trouver le code pour si le même nom est déjà enregistrer, afficher un message d'alerte + ne pas enregistrer + dans ce cas ne pas enlever les informations misent dans le formulaire pour pouvoir les modifier.
    Après ton contrôle du vide, il suffit de rajouter ce code qui vérifie si la valeur du combo est présente en colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ElseIf Application.CountIf(Range("A:A"), ComboBox1) > 0 Then
        MsgBox "double": Exit Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Responsable de trafic
    Inscrit en
    Juin 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable de trafic

    Informations forums :
    Inscription : Juin 2018
    Messages : 8
    Par défaut
    Bonjour,

    Merci et désolé pour ma reponse tardive. J'essaye ca ce soir et je te tiens au courant.

    Encore merci

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Responsable de trafic
    Inscrit en
    Juin 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable de trafic

    Informations forums :
    Inscription : Juin 2018
    Messages : 8
    Par défaut
    Donc je vais de mettre le code et ça marche nikel. merci @anasecu

    par contre pour le reste j'ai réessayé et je trouve pas.
    pourquoi que je mais rien dans mon combobox1 il me prévient que c'est vide et ne l'enregistre pas mais affiche quand même "contact enregistré".

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub CommandButton1_Click()
    If ComboBox1 = "" Then
    MsgBox ("Merci d'indiquer le faisceau") 'message d'alerte
     
    ElseIf Application.CountIf(Range("A:A"), ComboBox1) > 0 Then
        MsgBox "double": Exit Sub 'verif doublon
     
    Else
        If Sheets("BD").Range("A2") = "" Then
        Sheets("BD").Range("A2") = ComboBox1
        Else
        Sheets("BD").ListObjects(1).ListRows.Add
        End If
        DerniereLigne = Sheets("BD").Range("D1048576").End(xlUp).Row
        Sheets("BD").Range("a" & DerniereLigne) = ComboBox1
        Sheets("BD").Range("b" & DerniereLigne) = ComboBox2
        Sheets("BD").Range("c" & DerniereLigne) = TextBox3
        Sheets("BD").Range("d" & DerniereLigne) = TextBox4
        Sheets("BD").Range("e" & DerniereLigne) = TextBox5
        Sheets("BD").Range("f" & DerniereLigne) = TextBox6
        Sheets("BD").Range("g" & DerniereLigne) = TextBox7
        Sheets("BD").Range("h" & DerniereLigne) = TextBox8
        Sheets("BD").Range("i" & DerniereLigne) = TextBox9
        Sheets("BD").Range("j" & DerniereLigne) = TextBox10
        Sheets("BD").Range("k" & DerniereLigne) = TextBox11
        Sheets("BD").Range("l" & DerniereLigne) = TextBox12
        Sheets("BD").Range("m" & DerniereLigne) = TextBox13
     
     
     
     
        End If
     
        ComboBox1.Value = MsgBox("Contact enregistré", vbOKOnly + vbInformation)    'message de validation d'enregistrement
     
       Unload Me                      'effacement du tableau après validation
        UserForm1.Show
     
    End Sub
    si à l'occasion quelqu’un pourrait jeter un coup d’œil

    bonne soirée

    Thomas

  5. #5
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonsoir,

    Cela vient de tot "End If" mal placé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Sheets("BD").Range("m" & DerniereLigne) = TextBox13
         ComboBox1.Value = MsgBox("Contact enregistré", vbOKOnly + vbInformation)    'message de validation d'enregistrement
     
       Unload Me                      'effacement du tableau après validation
     
        UserForm1.Show
        End If

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Responsable de trafic
    Inscrit en
    Juin 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable de trafic

    Informations forums :
    Inscription : Juin 2018
    Messages : 8
    Par défaut
    Merci @anasecu,

    Tout ça pour un mauvais ordre. C'est vraiment rigoureux le codage

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Pourquoi faire simple quand on peut faire compliqué.

    Si le nom est déjà dans la combox risque de doublon? Non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If msbox("Save ?",vbyesNo) = vbno then exit sub
    If ComboBox1="" then msgbox "Pas de saisie":exit sub
    if ComboBox1.ListIndex >-1 then msgbox "Doublon":exit sub
    Enregistrement
    Dernière modification par Invité ; 06/07/2018 à 14h01.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Responsable de trafic
    Inscrit en
    Juin 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable de trafic

    Informations forums :
    Inscription : Juin 2018
    Messages : 8
    Par défaut
    Merci à vous 2.

    Je suis peut être perfectionniste mais quand je rentre de nouvelles données il remplit mes cellules par le nom des colonnes du tableau. En soi c'est pas grave mais si je ne les effacent pas ils seront enregistrées.
    Par contre seule ma colonne "A" s'enregistre pourquoi? mon code n'a pas changé.

    Je vous remets mon programme ou plutôt notre programme en pièce jointe.

    Merci à vous
    Fichiers attachés Fichiers attachés

  9. #9
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,

    Tu n'as pas contrôlé le listindex sur la fonction change du combobox1 comme précisé
    en testant que listindex est>=0 sinon tu auras une erreur.
    D'autre part, comme tu ajoutes les lignes à ton tableau,
    il faut partir d'un tableau avec une seule ligne sinon tu auras toujours tes lignes créées vides qui restérons.
    Fichiers attachés Fichiers attachés

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Responsable de trafic
    Inscrit en
    Juin 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable de trafic

    Informations forums :
    Inscription : Juin 2018
    Messages : 8
    Par défaut
    Enorme merci @anasecu.

    j'ai juste inversé ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ComboBox1.Text = UCase(ComboBox1.Text) 'Forcer la majuscule
    If Me.ComboBox1.ListIndex < 0 Then Exit Sub
    Sinon il ne forcait pas la mise en majuscule.

    Je clôture le post.

    J'ai encore d’autre question mais je vais essayer par moi même avant de te rembeter. J'ai l'idée de créer un commandbutton pour imprimer le répertoire mais avec une mise en page plus sympa. Mais ça.....

    encore merci

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/05/2006, 12h34
  2. [MySQL] Mon livre d'or ne veut pas enregistrer les messages
    Par Invité dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 15/03/2006, 16h28
  3. Erreur : La classe n'est pas enregistrée
    Par Le Pharaon dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/08/2005, 12h04
  4. comment ne pas enregistrer dans le fichier log?
    Par trotters213 dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 21/03/2005, 14h56

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