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

Excel Discussion :

Macro enregistrer données d'un formulaire - Problème de doublons [XL-2010]


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Macro enregistrer données d'un formulaire - Problème de doublons
    Bonjour à tous,

    En pièce jointe vous trouverez un fichier présentant 2 onglets.
    Le premier est une base de données (BDD) sur le lequel j'enregistre les informations du second via le bouton "record".

    A chaque enregistrement, les données s'enregistrent les unes à la suite des autres, même si le numéro est identique. J'ai donc des doublons.

    Je souhaiterais qu'en fonction du numéro unique renseigné sur le formulaire en (D5), les données soient mises à jour/écrasées sur la ligne correspondante de l'onglet BDD.

    Un peu dans la même logique qu'une rechercheV de D5 dans la colonne C de l'onglet BDD mais je n'arrive pas l'encoder.

    Si en lisant ceci vous aviez une proposition, votre aide est plus que bienvenue.

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 114
    Points
    1 114
    Par défaut
    Bonjour

    essaies

    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
    Sub pour_dvp()
    Dim T_req, Lig As Integer
        Application.ScreenUpdating = False
        With Sheets("1-Req")
            ReDim T_req(1 To 4)
            T_req(1) = .Range("D5")
            T_req(2) = .Range("C5")
            T_req(3) = .Range("A9")
            T_req(4) = .Range("C9")
        End With
        With Sheets("BDD")
            If Application.CountIf(.Columns("C"), T_req(1)) = 0 Then
                Lig = .Columns("C").Find("", .Range("C2"), xlValues).Row
            Else
                Lig = .Columns("C").Find(T_req(1), .Range("C2"), xlValues).Row
            End If
                .Cells(Lig, "C").Resize(1, 4) = T_req
                .Activate
        End With
    End Sub
    Michel_M

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Les problèmes de doublons sont parmi les plus fréquents dans les demandes sur ce forum.
    As-tu pris la peine de lancer une recherche pour savoir s'il n'y a pas déjà des réponses qui te permettraient de résoudre ton problème ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    On ne balance pas un fichier-joint à la première question. Et surtout pas un fichier de macros:

    http://www.developpez.net/forums/d84...s-discussions/

    Excel n'est pas, n'a jamais été et ne sera jamais un SGBD

    Et puis Visual Studio Community et SQL Server Express sont gratuits et permettent de faire de vraies solutions de gestion des données et pas des usines à gaz.

    Et puis, on n'oublie pas les Règles:

    http://club.developpez.com/regles/#LIV-I

    http://club.developpez.com/regles/#LIV-N
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2013
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2013
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Un grand merci Michel_M
    Je ne pensais pas remanier la macro à ce point mais ça marche !

    Menhir, j'ai fais le tour ici et ailleurs et je n'ai pas trouvé de solution ou elle m'est passée sous le nez.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/04/2015, 11h49
  2. Réponses: 3
    Dernier message: 04/04/2013, 20h23
  3. [XL-2003] Macro enregistrement données formulaire
    Par leloup84 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/10/2012, 10h55
  4. [AC-2000] enregistrement données dans sous formulaire
    Par otaquet dans le forum IHM
    Réponses: 7
    Dernier message: 29/10/2009, 18h43
  5. une macro "enregistrer donnée en cours"
    Par copainvince dans le forum Access
    Réponses: 14
    Dernier message: 19/01/2007, 16h54

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