Formulaire en VBA dans feuille Excel
Résolu/Fermé
cartman1706
Messages postés
282
Date d'inscription
jeudi 9 novembre 2000
Statut
Membre
Dernière intervention
21 juillet 2020
-
26 mars 2012 à 10:24
cartman1706 Messages postés 282 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 21 juillet 2020 - 27 mars 2012 à 00:55
cartman1706 Messages postés 282 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 21 juillet 2020 - 27 mars 2012 à 00:55
A voir également:
- Formulaire en VBA dans feuille Excel
- Feuille de pointage excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Formulaire de réclamation facebook - Guide
- Word et excel gratuit - Guide
6 réponses
Submin
Messages postés
382
Date d'inscription
vendredi 2 mars 2012
Statut
Membre
Dernière intervention
1 avril 2016
226
26 mars 2012 à 11:14
26 mars 2012 à 11:14
Malheureusment avec ces informations, je ne peux te fournir un code qui te satisferait complétement!
Par contre je peux te donner quelques informations.
Dans un premier temps je suppose que tu as un bouton valider en bas de ton formulaire! Si tu double clic dessus tu aura acces au "Sub" qui correspond a l'action quand tu clilc sur le bouton. Il va falloir y mettre les actions que tu veux ici!
Dans un premier temps, tes boucles if afin de voir si les champs de ton formulaire sont bien remplis. Imaginons que tu es mid deux TextBox dans ton formulaire :
Ensuite passons a ta question principale....
Pour utiliser les infos des tes case a cocher et zone de saisie il te suffit juste de reprendre son nom et de mettre ".value" à la fin
Enfin voila, je pense que tu as compris le truc!
Ensuite pour ecrire dans excell bah il s'agit de la base de VBA
Sheets(1) pour dire que ce sera dans la feuille 1 de ton classeur
Cells(1,1) pour dire que ce sera dans la cellule ligne 1 colonne 1
Voila voila,
Je sais pas si je peux aider plus mais commence a coder quelque chose puis si tu as des questions vient poster ton code ici...
Ne sachant pas exactement ton souhait proprement dit, je ne peux pas t'aider plus pour le moment
Mais hésites pas ;)
Par contre je peux te donner quelques informations.
Dans un premier temps je suppose que tu as un bouton valider en bas de ton formulaire! Si tu double clic dessus tu aura acces au "Sub" qui correspond a l'action quand tu clilc sur le bouton. Il va falloir y mettre les actions que tu veux ici!
Dans un premier temps, tes boucles if afin de voir si les champs de ton formulaire sont bien remplis. Imaginons que tu es mid deux TextBox dans ton formulaire :
Private Sub CommandButton1_Click() if TextBox1.Value <> "" AND TextBox2 <> "" Then .....Ton code.... Unload Userform1 Else MsgBox("Tous les champs ne sont pas remplis") End If End Sub
Ensuite passons a ta question principale....
Pour utiliser les infos des tes case a cocher et zone de saisie il te suffit juste de reprendre son nom et de mettre ".value" à la fin
sheets(1).cells(1,1) = TextBox1.Value if OptionButton.Value = False Then ...
Enfin voila, je pense que tu as compris le truc!
Ensuite pour ecrire dans excell bah il s'agit de la base de VBA
Sheets(1).Cells(1,1) = "Ce que tu veux mettre dans la case"
Sheets(1) pour dire que ce sera dans la feuille 1 de ton classeur
Cells(1,1) pour dire que ce sera dans la cellule ligne 1 colonne 1
Voila voila,
Je sais pas si je peux aider plus mais commence a coder quelque chose puis si tu as des questions vient poster ton code ici...
Ne sachant pas exactement ton souhait proprement dit, je ne peux pas t'aider plus pour le moment
Mais hésites pas ;)
cartman1706
Messages postés
282
Date d'inscription
jeudi 9 novembre 2000
Statut
Membre
Dernière intervention
21 juillet 2020
36
26 mars 2012 à 12:05
26 mars 2012 à 12:05
Merci bien c'est nickel je vais essayer !
cartman1706
Messages postés
282
Date d'inscription
jeudi 9 novembre 2000
Statut
Membre
Dernière intervention
21 juillet 2020
36
26 mars 2012 à 13:49
26 mars 2012 à 13:49
Bon alors ça marche deja beaucoup mieux mais pas pour tout.
En effet, lorsque que clique sur VALIDER il devrai mettre dans la colonne P a partir de la case P2 le contenu de la textbox si la case O correspondante n'est pas vide ... et non, ça n'ecrit pas... j'pige pas pourquoi !
En effet, lorsque que clique sur VALIDER il devrai mettre dans la colonne P a partir de la case P2 le contenu de la textbox si la case O correspondante n'est pas vide ... et non, ça n'ecrit pas... j'pige pas pourquoi !
Private Sub Annuler_Click() Unload UserForm1 End Sub Private Sub ref_OpenBat_Change() CodeOpenBat = ref_OpenBat.Value 'Récupères la valeur dans ta variable End Sub Private Sub suppr_NON_Click() End Sub Private Sub suppr_OUI_Click() End Sub Private Sub Valider_Click() Sheets("Arbo").Select 'Supression des departements If suppr_OUI Then Sheets("Arbo").Select Columns("D:D").Select Application.CutCopyMode = False Selection.ClearContents Range("D1").Select ActiveCell.FormulaR1C1 = "DEPARTEMENT" With ActiveCell.Characters(Start:=1, Length:=12).Font .Name = "Calibri" .FontStyle = "Gras" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 3 End With End If 'inscription du CodeOpenBat For i = 2 To 1000 If Range("O" & i).Value = "" Then Else Range("P" & i).Value = CodeOpenBat End If Next i 'exit du popup Unload UserForm1 End Sub
cartman1706
Messages postés
282
Date d'inscription
jeudi 9 novembre 2000
Statut
Membre
Dernière intervention
21 juillet 2020
36
26 mars 2012 à 14:13
26 mars 2012 à 14:13
C'est bon j'ai trouvé, c'etait la variable CodeOpenBat qui n'etait pas declarée !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Submin
Messages postés
382
Date d'inscription
vendredi 2 mars 2012
Statut
Membre
Dernière intervention
1 avril 2016
226
Modifié par Submin le 26/03/2012 à 16:54
Modifié par Submin le 26/03/2012 à 16:54
Pour info tu as du déclarer "CodeOpenBat" en variable global dans ton cas de figure...
C'est cool ça marche, car il s'agit d'un petit programme.
En gros, il faut eviter le plus possible de creer des variables globales, seulement le faire quand il n'y a pas d'autre choix!
La par exemple tu n'est pas obligé de changé ta variable "CodeOpenBat" a chaque fois que tu met un caractere dans le TextBox! tu peux juste l'initialiser quand tu clic sur valider. Et ça t'économise une variable globale :D
Nouveau code :
Bref, ce n'est qu'un détail mais c'est bien d'apprendre les bonnes manières dès le début
C'est cool ça marche, car il s'agit d'un petit programme.
En gros, il faut eviter le plus possible de creer des variables globales, seulement le faire quand il n'y a pas d'autre choix!
La par exemple tu n'est pas obligé de changé ta variable "CodeOpenBat" a chaque fois que tu met un caractere dans le TextBox! tu peux juste l'initialiser quand tu clic sur valider. Et ça t'économise une variable globale :D
Nouveau code :
Private Sub Annuler_Click() Unload UserForm1 End Sub Private Sub ref_OpenBat_Change() CodeOpenBat = ref_OpenBat.Value 'Récupères la valeur dans ta variable End Sub Private Sub Valider_Click() Dim CodeOpenBat As String Sheets("Arbo").Select CodeOpenBat = ref_OpenBat.Value 'Récupères la valeur dans ta variable 'Supression des departements If suppr_OUI Then Sheets("Arbo").Select Columns("D:D").Select Application.CutCopyMode = False Selection.ClearContents Range("D1").Select ActiveCell.FormulaR1C1 = "DEPARTEMENT" With ActiveCell.Characters(Start:=1, Length:=12).Font .Name = "Calibri" .FontStyle = "Gras" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 3 End With End If 'inscription du CodeOpenBat For i = 2 To 1000 If Range("O" & i).Value = "" Then Else Range("P" & i).Value = CodeOpenBat End If Next i 'exit du popup Unload UserForm1 End Sub
Bref, ce n'est qu'un détail mais c'est bien d'apprendre les bonnes manières dès le début
cartman1706
Messages postés
282
Date d'inscription
jeudi 9 novembre 2000
Statut
Membre
Dernière intervention
21 juillet 2020
36
27 mars 2012 à 00:55
27 mars 2012 à 00:55
merci pour cette remarque ... le jeune padawan du VBA que je suis saura s'en souvenir ;)