Microsoft 365 Userform - Transfert de données

Simbaa

XLDnaute Nouveau
Bonjour à tous et à toutes,

J'ai fais un fichier Excel qui contient un user form (onglet "Feuil1"). Une fois remplie, l'utilisateur clique sur "Valider" et le UserForm se ferme.
Les données ont été transférés dans l'onglet "Partie 1".
Jusqu'à là tout va bien.
Mais je voulais savoir :

- s'il existait une fonction qui permettait de sauvegarder les données dans l'UserForm pour une futur modification des données ? Par exemple, l'utilisateur souhaite modifier quelques données et il ouvre le Userform et à sa validation seul les données saisis sont remplacés sans effacer les autres cases.

- S'il était possible que pour chaque entrée d'une nouvelle révision (par exemple, passage de révision A à B), celui ci est automatiquement mit après la ligne de la révision A ? (faut - il mettre +1 en dimension ?)

Je vous joins mon fichier excel ci - dessous.

Je vous remercie d'avance pour vos réponses.

Cordialement
Simbaa
 

Pièces jointes

  • Classeur_exemple.xlsm
    31.7 KB · Affichages: 8
Dernière édition:
Solution
Bonjour Simbaa,
Pour le 1er point, il suffit de restituer les valeurs avant de faire le Userform1.show avec :
VB:
Sub AFFICHER()
With UserForm1
    .NumAf.Value = Sheets("Partie 1").Range("C18").Value         'entrée du numéro d'affaire
    .CoDoc.Value = Sheets("Partie 1").Range("C22").Value         ' entrée du nom du document
    .Composant_name.Value = Sheets("Partie 1").Range("A14").Value  'entrée nom du composant à fournir
    .Equipement.Value = Sheets("Partie 1").Range("C20").Value    'entrée nom de l'équipement
    .Client.Value = Sheets("Partie 1").Range("C24").Value        'entrée nom du client final
    .Rev.Value = Sheets("Partie 1").Range("A30").Value           'entrée de la version du doc
    .date_edition.Value =...

patricktoulon

XLDnaute Barbatruc
a mon avis travailler sur plusieur page va être un carcan
fait toi une bdd avec un TS et retransfere le tout dans tes pages quand il y a besoins
peut être une liste box reprenant toute la bdd dans le userform pour reprendre les données
ouais conclusion c'est pas le bon chemin que tu a pris surtout si tu n'a pas la formation necessaire en vba
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Simbaa,
Pour le 1er point, il suffit de restituer les valeurs avant de faire le Userform1.show avec :
VB:
Sub AFFICHER()
With UserForm1
    .NumAf.Value = Sheets("Partie 1").Range("C18").Value         'entrée du numéro d'affaire
    .CoDoc.Value = Sheets("Partie 1").Range("C22").Value         ' entrée du nom du document
    .Composant_name.Value = Sheets("Partie 1").Range("A14").Value  'entrée nom du composant à fournir
    .Equipement.Value = Sheets("Partie 1").Range("C20").Value    'entrée nom de l'équipement
    .Client.Value = Sheets("Partie 1").Range("C24").Value        'entrée nom du client final
    .Rev.Value = Sheets("Partie 1").Range("A30").Value           'entrée de la version du doc
    .date_edition.Value = Sheets("Partie 1").Range("B30").Value  'entrée de la date de création du fichier
    .redacteur.Value = Sheets("Partie 1").Range("C30").Value     'entrée du nom du rédacteur
    .verificateur.Value = Sheets("Partie 1").Range("D30").Value  'entrée du nom du vérificateur
    .observation.Value = Sheets("Partie 1").Range("E30").Value   'entrée observation
    .approbateur.Value = Sheets("Partie 1").Range("F30").Value   'entrée du nom de l'approbateur final
End With
UserForm1.Show
End Sub
Pour le second point, je n'ai pas compris.
- S'il était possible que pour chaque entrée d'une nouvelle révision (par exemple, passage de révision A à B), celui ci est automatiquement mit après la ligne de la révision A ? (faut - il mettre +1 en dimension ?)
Pouvez vous être plus clair ?
 

Pièces jointes

  • Classeur_exemple (1).xlsm
    26.6 KB · Affichages: 9

Simbaa

XLDnaute Nouveau
Bonjour Simbaa,
Pour le 1er point, il suffit de restituer les valeurs avant de faire le Userform1.show avec :
VB:
Sub AFFICHER()
With UserForm1
    .NumAf.Value = Sheets("Partie 1").Range("C18").Value         'entrée du numéro d'affaire
    .CoDoc.Value = Sheets("Partie 1").Range("C22").Value         ' entrée du nom du document
    .Composant_name.Value = Sheets("Partie 1").Range("A14").Value  'entrée nom du composant à fournir
    .Equipement.Value = Sheets("Partie 1").Range("C20").Value    'entrée nom de l'équipement
    .Client.Value = Sheets("Partie 1").Range("C24").Value        'entrée nom du client final
    .Rev.Value = Sheets("Partie 1").Range("A30").Value           'entrée de la version du doc
    .date_edition.Value = Sheets("Partie 1").Range("B30").Value  'entrée de la date de création du fichier
    .redacteur.Value = Sheets("Partie 1").Range("C30").Value     'entrée du nom du rédacteur
    .verificateur.Value = Sheets("Partie 1").Range("D30").Value  'entrée du nom du vérificateur
    .observation.Value = Sheets("Partie 1").Range("E30").Value   'entrée observation
    .approbateur.Value = Sheets("Partie 1").Range("F30").Value   'entrée du nom de l'approbateur final
End With
UserForm1.Show
End Sub
Pour le second point, je n'ai pas compris.

Pouvez vous être plus clair ?
Bonjour sylvanu,

Merci pour ta réponse.

Pour le deuxième point, le fichier est généré en une première version (appelé Révision A) s'il y a des modifications à faire, le fichier va passer en révision B. Mais après réflexion, je pense que je vais enlever cet partie et le rendre manuel.

Merci encore!

Simbaa
 

Simbaa

XLDnaute Nouveau
a mon avis travailler sur plusieur page va être un carcan
fait toi une bdd avec un TS et retransfere le tout dans tes pages quand il y a besoins
peut être une liste box reprenant toute la bdd dans le userform pour reprendre les données
ouais conclusion c'est pas le bon chemin que tu a pris surtout si tu n'a pas la formation necessaire en vba
Bonjour patricktoulon,

Quand tu dis BDD c'est bien base de donné ?
Et "TS" renvoi à quoi ?

Je vais y réfléchir.

Merci!
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 263
Membres
103 167
dernier inscrit
miriame