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 :

Faire une substitution de données


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Faire une substitution de données
    Bonjour le forum,

    J'ai un formulaire (FrmFich) avec différentes TextBox et un Combo.
    A partir du Combo, l'utilisateur choisi un nom (venant du fichier "Adhé").

    A l'ouverture du formulaire, seul le combo peut être modifié. Il y a donc un bouton MaJ (mise à jour) qui permet de rendre toutes les TextBox modifiables.

    L'utilisateur modifie donc les données nécessaires. Ensuite, lorsqu'il valide sa saisie, je souhaite que les données saisies écrasent celles qui sont dans le fichier en correspondance avec le nom choisi dans la Combo.

    Par exemple : Toto est choisi. Des données sont modifiées. Lorsque la validation est activée, alors toutes les données se trouvant sur la ligne où se trouve Toto sont remplacées par celles venant du formulaire.

    Pouvez-vous m'aider à faire cela s'il vous plait ?
    Je vous en remercie par avance

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour NEC14,
    cherche ton TOTO avec .FIND et puis en utilisant le row de la cellule trouvée tu as la ligne.

    Facile alors de mettre en place les différents contrôle de to SUF dans les différentes colonnes de cette ligne.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut NEC14 et le forum
    Comme il n'y a que des généralités...
    si tu alimentes les textbox par le nom, déclares une variable globale Pour la ligne (en Long) quand tu mets à jour ton formulaire à partir de la combo, tu la charge avec le numéro de la ligne où tu prends tes infos.
    Si tu modifies le nom, pense à faire un test d'unicité sur ta liste d'origine, et quand tu valides les modifications, remets tes Textbox à l'état initial et si le nom est changé, recharge ta combo.
    A+

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Une solution est de prévoir ça dès le départ, donc à l’alimentation de ton combo, sur laquelle nous n’avons pas d’info, vu le contexte, le nombre d’adhé doit être variable et l’alimentation du combo aussi (dynamique).

    La chose consiste à rajouter une colonne dans ton combo (non visible) et dans laquelle tu stockes l’adresse de la cellule de ton adhé lors de son alimentation. Du coup quand un adhé est sélectionné, tu peux écrire toutes ses données via des Offset, voir si tu as structuré ta base de données avec des noms sur les en-têtes de colonnes, tu écris les valeurs avec un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(donnée N° ligne via Combo, Range("PrenomAdhé" ).Column) = txtPrenomAdhé
    Etc… adaptation multiples selon contexte.

    cordialement,

    Didier

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Mon Combo est alimenté par des données venant de la feuille "Adhé".
    Dans le Combo figure le nom et le prénom de l'adhérent. Comme je l'ai dit plus haut, au démarrage c'est le seul point de modification.

    Au départ cette fiche ne devait servir qu'à la consultation, mais il s'avère qu'il soit possible de faire des modifications de la fiche adhérent à partir de ce formulaire. C'est pourquoi je souhaite mettre en place un code qui effacera les données existantes sur de l'adhérent et les remplacera par celle du formulaire mais uniquement si le bouton mise à jour a été activé.

    Je vous ai joint une partie du fichier

  6. #6
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour NEC14 Godzestla Gorfael Ormonth le forum un exemple simple a adapter

  7. #7
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re le fil le forum houla !! on a poster en meme temps j avais pas vu ton fichier
    comme le dit l ami Godzestla find serait plus adaptee

  8. #8
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Voilà j'ai commencé ce code, mais je bloque sur les valeurs à mettre
    Premièrement derrière .Find je ne sais pas quoi mettre
    Deuxièmement c.value= je ne sais pas quoi mettre non plus
    Pouvez-vous m'apporter quelques éclairages s'il vous plait ?
    Merci par avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'Recherche des données de la Combo dans la feuille "Adhé"
    With Worksheets("Adhé").Range("C1:C500")
        Set c = .Find(, lookin:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
    'Remplacent les données trouvées par celles du formulaire
                c.Value = 
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With

  9. #9
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour à tous,

    J'ai travaillé tard hier soir sur ce problème, sans réussite. Je vais faire autrement pour la mise à jour des enfants. Elle se fera directement dans la feuille.

    Merci à tous pour vos bons conseils

    A+

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

Discussions similaires

  1. Utilisation de taleaux pour faire une base de données
    Par zaloeil dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/06/2014, 15h44
  2. [XL-2003] VBA EXCEL nettoyer une liste de noms pour en faire une base de données
    Par klhsri dans le forum Contribuez
    Réponses: 0
    Dernier message: 21/03/2012, 14h21
  3. Faire une base de données réservation
    Par crepeonutella dans le forum Access
    Réponses: 11
    Dernier message: 01/06/2010, 10h37
  4. comment faire une "base de donnée" en visual basic
    Par morpheusmg dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/11/2007, 20h42
  5. Réponses: 3
    Dernier message: 22/06/2006, 18h41

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