Code VBA pour projet formulaire de demande
Résolu/Fermé
D277
Messages postés
34
Date d'inscription
lundi 7 avril 2014
Statut
Membre
Dernière intervention
30 avril 2015
-
Modifié par D277 le 13/08/2014 à 22:45
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 26 août 2014 à 11:21
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 26 août 2014 à 11:21
A voir également:
- Code VBA pour projet formulaire de demande
- Code ascii de a - Guide
- Formulaire de réclamation facebook - Guide
- Code puk bloqué - Guide
- Code de déverrouillage oublié - Guide
- Code activation windows 10 - Guide
5 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
14 août 2014 à 08:53
14 août 2014 à 08:53
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.
D277
Messages postés
34
Date d'inscription
lundi 7 avril 2014
Statut
Membre
Dernière intervention
30 avril 2015
14 août 2014 à 22:34
14 août 2014 à 22:34
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
D277
Messages postés
34
Date d'inscription
lundi 7 avril 2014
Statut
Membre
Dernière intervention
30 avril 2015
20 août 2014 à 12:47
20 août 2014 à 12:47
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
Modifié par pijaku le 26/08/2014 à 07:52
Modifié par pijaku le 26/08/2014 à 07:52
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
D277
Messages postés
34
Date d'inscription
lundi 7 avril 2014
Statut
Membre
Dernière intervention
30 avril 2015
26 août 2014 à 11:14
26 août 2014 à 11:14
Bonjour pijaku,
Rien à dire à part un grand merci.
C'est juste parfait ;)
Bonne journée
D277
Rien à dire à part un grand merci.
C'est juste parfait ;)
Bonne journée
D277
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
26 août 2014 à 11:21
26 août 2014 à 11:21
Bonjour,
Mais de rien.
Bonne journée à toi également
Mais de rien.
Bonne journée à toi également