Code VBA pour projet formulaire de demande
Résolu
D277
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonsoir à tous,
Je me suis mis à créer un formulaire pour une demande. J'ai joint un fichier avec des exemples aléatoires pour mieux visualiser : http://cjoint.com/14au/DHnwPzzXHX0.htm
Le but étant : En ouvrant le fichier, la personne clique sur le bouton "Créer une demande". Apparaît alors une fenêtre (dont j'ai brièvement dessiner l'aspect sur cette même feuille). La personne choisit un SEUL essai puis clique sur OK. Se copie/colle alors la plage de cellules en rapport avec cette essai constituée de menus déroulants. Et ainsi de suite, en ajoutant chaque essai l'un en dessous de l'autre avec un décalage de 1 ou 2 lignes pour un peu de clarté.
Pour les détails, je ferai en sorte que le fichier s'ouvre sur cette feuille de demande. Je masquerai la feuille Listes. La fenêtre est à créer avec un userform.
Ma question est : comment intégrer le code de copie/colle de la plage dans le userform ?
Merci d'avance pour l'aide que vous pourriez m'apporter.
D277
Je me suis mis à créer un formulaire pour une demande. J'ai joint un fichier avec des exemples aléatoires pour mieux visualiser : http://cjoint.com/14au/DHnwPzzXHX0.htm
Le but étant : En ouvrant le fichier, la personne clique sur le bouton "Créer une demande". Apparaît alors une fenêtre (dont j'ai brièvement dessiner l'aspect sur cette même feuille). La personne choisit un SEUL essai puis clique sur OK. Se copie/colle alors la plage de cellules en rapport avec cette essai constituée de menus déroulants. Et ainsi de suite, en ajoutant chaque essai l'un en dessous de l'autre avec un décalage de 1 ou 2 lignes pour un peu de clarté.
Pour les détails, je ferai en sorte que le fichier s'ouvre sur cette feuille de demande. Je masquerai la feuille Listes. La fenêtre est à créer avec un userform.
Ma question est : comment intégrer le code de copie/colle de la plage dans le userform ?
Merci d'avance pour l'aide que vous pourriez m'apporter.
D277
A voir également:
- Code VBA pour projet formulaire de demande
- Whatsapp formulaire opposition - Guide
- Code ascii - Guide
- Formulaire de réclamation facebook - Guide
- Code de déverrouillage oublié - Guide
- Code puk bloqué - Guide
5 réponses
Bonjour,
La première étape consiste à "dessiner" votre UserForm.
Pour cela, rien de compliqué, nous allons vous laisser le faire.
Si vous n'avez jamais mis les pieds dans l'éditeur VBA, voyez cette fiche pratique au préalable.
La première étape consiste à "dessiner" votre UserForm.
Pour cela, rien de compliqué, nous allons vous laisser le faire.
Si vous n'avez jamais mis les pieds dans l'éditeur VBA, voyez cette fiche pratique au préalable.
Bonsoir,
Oui en effet, j'avais oublié de le dessiner.
Je l'ai donc créé : https://www.cjoint.com/?DHowBC2Mkkc
J'ai aussi avec l'enregistreur de macro (cela devrait suffire), écrit le code pour la copie/colle d'un des essais. Je pense avoir également le code pour que chaque copie/colle se fasse l'une en-dessous de l'autre.
Pour ce qui du bouton annuler, il suffira de mettre Unload "Nom_du_userform" dans le code du Commandbutton.
J'ai déjà travaillé avec le VBA, mais je ne sais pas comment intégrer la notion de choix avec les checkbox puis le code de copie/colle en fonction de l'essai choisi.
Dois-je intégrer le code sur les checkbox ?
Merci
D277
Oui en effet, j'avais oublié de le dessiner.
Je l'ai donc créé : https://www.cjoint.com/?DHowBC2Mkkc
J'ai aussi avec l'enregistreur de macro (cela devrait suffire), écrit le code pour la copie/colle d'un des essais. Je pense avoir également le code pour que chaque copie/colle se fasse l'une en-dessous de l'autre.
Pour ce qui du bouton annuler, il suffira de mettre Unload "Nom_du_userform" dans le code du Commandbutton.
J'ai déjà travaillé avec le VBA, mais je ne sais pas comment intégrer la notion de choix avec les checkbox puis le code de copie/colle en fonction de l'essai choisi.
Dois-je intégrer le code sur les checkbox ?
Merci
D277
Bonjour,
J'ai donc créer sur la feuille "Listes" tous les renseignements avec les listes déroulantes. Jusque là, facile.
Ensuite, via un userform, j'offre la possibilité de choisir un essai et par macro, la plage correspondante à l'essai choisi se copie/colle sur la feuille "Formulaire". Mon code pour l'instant lié à un optionbutton :
Le truc, c'est que j'aimerai bidouiller le code pour que le premier essai choisi se mette disons dans la colonne B, à la rigueur en cellule B10. Et que les autres essais choisis (même si ils sont équivalents au premier choisi ; par exemple 2 fois "Acier") se mettent en-dessous alignés avec le précédent dans la colonne B et si possible en laissant une ligne de décalage pour laisser un peu d'espace.
J'ai cette bribe de code :
Mais je n'arrive pas à obtenir ce que je voudrais. Y-a-t-il moyen d'arranger le code ?
Lien vers fichier : https://www.cjoint.com/?DHumU5TVYzU
Merci.
Bonne journée.
D277
J'ai donc créer sur la feuille "Listes" tous les renseignements avec les listes déroulantes. Jusque là, facile.
Ensuite, via un userform, j'offre la possibilité de choisir un essai et par macro, la plage correspondante à l'essai choisi se copie/colle sur la feuille "Formulaire". Mon code pour l'instant lié à un optionbutton :
Private Sub OptionButton1_Click()
Range("B12:D18").Select
Selection.Copy
Sheets("Formulaire").Select
ActiveSheet.Paste
End Sub
Le truc, c'est que j'aimerai bidouiller le code pour que le premier essai choisi se mette disons dans la colonne B, à la rigueur en cellule B10. Et que les autres essais choisis (même si ils sont équivalents au premier choisi ; par exemple 2 fois "Acier") se mettent en-dessous alignés avec le précédent dans la colonne B et si possible en laissant une ligne de décalage pour laisser un peu d'espace.
J'ai cette bribe de code :
Sheets("Formulaire").Select
Range("B65000").Select
Selection.End(xlUp).Select
Mais je n'arrive pas à obtenir ce que je voudrais. Y-a-t-il moyen d'arranger le code ?
Lien vers fichier : https://www.cjoint.com/?DHumU5TVYzU
Merci.
Bonne journée.
D277
Bonjour,
Avec un peu de retard....
Le code du module1 :
Le code du module de l'userform1 :
Le classeur exemple
Cordialement,
Franck
Avec un peu de retard....
Le code du module1 :
Option Explicit 'La variable publique Choix est alimentée par un clic dans un optionbutton cf code de l'userform 'elle sert à passer en paramètre de la procédure copier_coller le choix de l'utilisateur Public Choix As String Sub Copier_coller(strChoix As String) Dim maSelection As Range, DernLigne As Long With Sheets("Listes") Select Case strChoix Case "Acier" Set maSelection = .Range("B12:D18") Case "Bois" Set maSelection = .Range("B20:D24") Case "Plastique" Set maSelection = .Range("B26:D30") Case "Titane" Set maSelection = .Range("B32:D38") Case Else MsgBox "Merci d'effectuer un choix en cliquant sur un des boutons d'options" Exit Sub End Select 'on copie : maSelection.Copy End With With Sheets("Formulaire") .Select 'on calcule la dernière ligne DernLigne = .Range("C" & Rows.Count).End(xlUp).Row 'cas de la première utilisation If DernLigne = 1 Then DernLigne = 10 .Range("B" & DernLigne + 2).Select .Paste End With End Sub
Le code du module de l'userform1 :
Private Sub CommandButton4_Click() If Choix <> "" Then Call Copier_coller(Choix) End Sub Private Sub OptionButton1_Click() Choix = "Acier" End Sub Private Sub OptionButton2_Click() Choix = "Bois" End Sub Private Sub OptionButton3_Click() Choix = "Plastique" End Sub Private Sub OptionButton5_Click() Choix = "Titane" End Sub
Le classeur exemple
Cordialement,
Franck
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question