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 :

Modifier et remplacer des données excel depuis un formulaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Par défaut Modifier et remplacer des données excel depuis un formulaire
    Bonjour à tous, je viens vous voir car je bute sur un pb de modifier/remplacer.
    J'ai créer un userform avec un combobox qui, quand je choisi un article dans celui-ci me donne toutes les infos en rapport avec lui (inscrite sur la même ligen excel).
    Tous les champs visibles sur le userform à l'exception de "code article" sont modifiables.

    Donc je voudrais créer un code qui, quand je modifie un ou plusieurs des champs remplace automoatiquement ce dernier dans la feuille excel après clique sur le bouton modifier créer sur le userform.

    En gros :

    Un userform lié à une feuille excel --> modification d'un ou plusieur champs --> clique sur bouton "modifier" efface les anciennes données et remplace par celle modifiées.

    Merci de votre aide.
    Images attachées Images attachées   

  2. #2
    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 SenseniX le forum un exemple trés basique a adapter

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Par défaut
    Je n'arrive pas à adapter le code pour moi.
    De l'aide Laetitia ?

  4. #4
    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 ,si je transpose dans ton cas. cela donnerait cela .le peu que j'ai vu avec tes images
    je pense que ta plage par de c6 : j & x
    donc 8 textbox a adapter

    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
    Dim t As Variant, Y As Byte
    Private Sub UserForm_initialize()
    t = Range("c6:j" & Range("c65536").End(xlUp).Row): c1.List = t
    End Sub
    Private Sub cmd2_Click()
    For Y = 1 To 8: Cells(c1.ListIndex + 6, Y + 2) = Controls("T" & Y).Value: Next Y: Beep
    Unload Me: UserForm1.Show
    End Sub
    Private Sub c1_Click()
    For Y = 1 To 8: Controls("T" & Y) = c1.List(c1.ListIndex, Y - 1): Next Y
     End Sub
    Private Sub cmd1_Click()
    Unload Me
    End Sub
    Private Sub c1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    c1.SetFocus: c1.DropDown
    End Sub
    ma combobox se nomme c1
    les textboxs renommées T1 A T8
    la textbox T1 dans proprietées pour pas pouvoir la modifier Locked a true

    j' ai laisse tomber le code les labels pour faire simple
    si tes données ne suivent pas la chronologie des textboxs dans ton userform change les de place pour qu'il correspondent

    bien sur si ta plage va pas jusqu'a la colonne j il faut adapter supposons quel va jusqu'a la colonne h
    donc dans initialize h a la place de j

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_initialize()
    t = Range("c6:h" & Range("c65536").End(xlUp).Row): c1.List = t
    End Sub
    puis les boucles dans les autres codes 1 to 6 au lieu de 1 to 8

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Par défaut
    Je regarde ce soir, mais si ça peut t'aide voici mon fichier .
    à la place de "T", je dois mettre tous mes noms de champs car ils ont tous un nom différent.
    Fichiers attachés Fichiers attachés

  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 SenseniX le forum j'ai regardais ton code 4 userforms je verrais bien avec seulement 1 ou eventuellement passer par un multipage pour simplifier le code a l'extreme j'ai fais un autre exemple en partant sur ton fichier les textbox il vaut mieux les nommées de T1 a T7 cela permet de faire des boucles plus simple on evite les boucles avec "TypeName" ou "TypeOf" & economiser des dizaines de lignes de code en plus. il faut seulement bien positionner les textboxs dans ton user. a mediter!!!

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/03/2014, 10h30
  2. Remplacer des données de shapes via un tableau Excel
    Par tiber33 dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 25/09/2013, 16h53
  3. Vérification des données importées depuis excel
    Par noakiss dans le forum VBA Access
    Réponses: 0
    Dernier message: 31/03/2008, 11h21
  4. Modifier des formes Visio avec des données Excel
    Par Hubs702 dans le forum Visio
    Réponses: 4
    Dernier message: 25/06/2007, 07h19
  5. Récupérer des données Excel vers Interbase ...
    Par Djedjeridoo dans le forum InterBase
    Réponses: 2
    Dernier message: 20/07/2003, 18h16

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