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 :

Gestion des doublons VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Par défaut Gestion des doublons VBA
    Bonsoir,

    J'ai pu obtenir ce code dans ce forum que j'ai un peu adapté et qui m'a bien aidé. J'aimerais cependant encore mieux l'adapter mais je n'y arrive pas. Ce script permet le transfert de certaines données d'une feuille vers une autre mais j'aimerais y intégré un message d'erreur s'il y a doublon (colonne A)

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cel As Range, derLig As Integer, lignVide As Integer
    If Target.Column <> 12 Then Exit Sub
    derLig = Range("A" & Rows.Count).End(xlUp).Row
     
    If Target.Row <> derLig Then Exit Sub
    If ActiveCell = "RP" Then
    'il y a 7 valeurs à transférer
    v1 = Cells(derLig, 1): v2 = Cells(derLig, 2): v3 = Cells(derLig, 4)
    v4 = Cells(derLig, 8): v5 = Cells(derLig, 9): v6 = Cells(derLig, 11)
    'Ouvrir la feuill GM
    Sheets("GM").Activate
    Worksheets("GM").Unprotect Password:="XENNA"
     
    'Recherche de la première ligne vide
    lignVide = Sheets("GM").Range("A" & Rows.Count).End(xlUp).Row + 1
    'Copie des valeurs dans la feuille active
    With ActiveSheet
        .Cells(lignVide, 1) = v1 
        .Cells(lignVide, 2) = v3
        .Cells(lignVide, 4) = v6
        .Cells(lignVide, 5) = v2
        .Cells(lignVide, 8) = v4
        .Cells(lignVide, 9) = v5
    End With
     
     
    Worksheets("GM").Protect Password:="XENNA"
    End If
     
     
    End Sub
    Merci !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Un exemple à incorporer dans ton code.
    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 Worksheet_Change(ByVal Target As Range)
     Dim derLig As Integer, adresse As String
     If Target.Column <> 2 Then Exit Sub 'exemple avec saisies en A et B
     derLig = Range("A" & Rows.Count).End(xlUp).Row
     If Target.Row <> derLig Then Exit Sub
         v1 = Cells(derLig, 1)
            'Recherche si la nouvelle donnée existe déjà dans la colonne A.
            adresse = Columns(1).Find(What:=v1, After:=Range("A" & derLig).Offset(1, 0), _
            LookAt:=xlWhole, SearchDirection:=xlNext).Address
     
            'Si l'adresse de cellule trouvée ne correspond pas à la cellule modifiée, cela
            'signifie qu'il y a un doublon dans la colonne.
            If adresse <> Range("A" & derLig).Address Then _
                MsgBox "La donnée '" & v1 & _
                "' existe déjà dans la cellule " & adresse
    End Sub

  3. #3
    Membre averti
    Femme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2014
    Messages : 24
    Par défaut
    Bonsoir,

    Merci bcp pour votre proposition mais je n'arrive pas à l'intégrer dans mon code , pourriez-vous m'aider davantage ?

    Merci

  4. #4
    Membre averti
    Femme Profil pro
    Marketing
    Inscrit en
    Octobre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Octobre 2014
    Messages : 17
    Par défaut
    Bonjour,

    Je me permets de te répondre.

    Ce code est à intégrer dans le code de la feuille de ton classeur sur laquelle tu veux interdire les doublons ^^.

    Quand tu as ta liste d'objets VBA en faisant Alt+F11, tu as une sous liste Microsof Excel Objects et là tu as tes noms de feuilles, tu cliques sur ta feuille concernée et tu colles ce code.

    Polyasandre.

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Sauf incompréhension de ma part par manque de café chronique, vous pouvez supprimer directement les doublons par la fonction RemoveDuplicates (existe aussi en Excel classique).
    Si ça peut aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InpRng.RemoveDuplicates Columns:=(RngColAR), Header:=RngAsHeader

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Citation Envoyé par vinc_bilb Voir le message
    Bonjour,

    Sauf incompréhension de ma part par manque de café chronique, vous pouvez supprimer directement les doublons par la fonction RemoveDuplicates (existe aussi en Excel classique).
    Si ça peut aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InpRng.RemoveDuplicates Columns:=(RngColAR), Header:=RngAsHeader

    Belle découverte pour moi ! Je t'offre un café (virtuel) Vincent...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    J'étais décidé à écrire le module complet tenant compte de tes différents désidératas.
    Je charge ton fichier exemple et pour pouvoir tester ma première mouture je me lance à vouloir saisir une ligne exemple.
    Je suis tout étonné de constater que la colonne A ne permet pas la saisie de doublons, la "Validation des données" étant paramétrée.
    Peux-tu m'éclairer ?
    Pourquoi nous demander d'écrire en VBA une recherche qui ne peut être vraie puisqu'interdite par ailleurs ?

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

Discussions similaires

  1. Gestion des doublons
    Par Arsene12 dans le forum WinDev
    Réponses: 2
    Dernier message: 04/12/2007, 18h21
  2. Requete SQL sous Access : gestion des doublons
    Par mcroz dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 27/02/2007, 16h37
  3. Gestion des doublons
    Par bestall666 dans le forum Access
    Réponses: 9
    Dernier message: 19/02/2007, 16h15
  4. Gestion des doublons et dlookup
    Par bestall666 dans le forum Access
    Réponses: 5
    Dernier message: 14/02/2007, 23h01

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