Userformn vba et excel
geronimo
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voilà alors, j'ai un dossier excel sur lequel se trouve des boutons qui appellent des userforms.
Ce que je veux c'est pouvoir écrire les informations qui sont transmissent dans l'userform et de les écrire sur un autre fichier Excel.
Voilà mon code, ça ne marche pas !
[quote]
Private Sub CommandButton1_Click()
creation_personnel
End Sub
Private Sub commandbutton2_Click()
Unload Me
End Sub
Sub creation_formateur()
Dim a As Range
Set a = Workbooks("bd_personnel.xls").Worksheets("liste").Range("a2")
While a <> ""
Set a = a.Offset(1, 0)
Wend
a = TextBox1
a.Offset(0, 1) = TextBox2
a.Offset(0, 2) = TextBox3
a.Offset(0, 4) = TextBox4
a.Offset(0, 5) = textbox6
If CheckBox1 = True Then
a.Offset(0, 3) = "Français"
End If
If OptionButton1 = True Then
a.Offset(0, 6) = "Ecole"
If OptionButton2 = True Then
a.Offset(0, 6) = "Travail"
Else
a.Offset(0, 6) = "AUTRE"
End If
End If
If OptionButton4 = True Then
a.Offset(0, 7) = "5-2"
If OptionButton5 = True Then
a.Offset(0, 7) = "5-3"
If OptionButton6 = True Then
a.Offset(0, 7) = " 4-3"
Else
a.Offset(0, 7) = "Adm"
End If
End If
End If
End Sub
/quote
Merci de votre aide
Voilà alors, j'ai un dossier excel sur lequel se trouve des boutons qui appellent des userforms.
Ce que je veux c'est pouvoir écrire les informations qui sont transmissent dans l'userform et de les écrire sur un autre fichier Excel.
Voilà mon code, ça ne marche pas !
[quote]
Private Sub CommandButton1_Click()
creation_personnel
End Sub
Private Sub commandbutton2_Click()
Unload Me
End Sub
Sub creation_formateur()
Dim a As Range
Set a = Workbooks("bd_personnel.xls").Worksheets("liste").Range("a2")
While a <> ""
Set a = a.Offset(1, 0)
Wend
a = TextBox1
a.Offset(0, 1) = TextBox2
a.Offset(0, 2) = TextBox3
a.Offset(0, 4) = TextBox4
a.Offset(0, 5) = textbox6
If CheckBox1 = True Then
a.Offset(0, 3) = "Français"
End If
If OptionButton1 = True Then
a.Offset(0, 6) = "Ecole"
If OptionButton2 = True Then
a.Offset(0, 6) = "Travail"
Else
a.Offset(0, 6) = "AUTRE"
End If
End If
If OptionButton4 = True Then
a.Offset(0, 7) = "5-2"
If OptionButton5 = True Then
a.Offset(0, 7) = "5-3"
If OptionButton6 = True Then
a.Offset(0, 7) = " 4-3"
Else
a.Offset(0, 7) = "Adm"
End If
End If
End If
End Sub
/quote
Merci de votre aide
A voir également:
- Userformn vba et excel
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Déplacer colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
9 réponses
UP,UP,UP. Ben voyons!
Ca marche ou ca marche pas?
SI tu es pressé, répond d'abord aux questions qui te sont posées
L'esclave de service,
Michel
Ca marche ou ca marche pas?
SI tu es pressé, répond d'abord aux questions qui te sont posées
L'esclave de service,
Michel
lermite222
Messages postés
8724
Date d'inscription
Statut
Contributeur
Dernière intervention
1 191
+1
Bonjour,
Essaye d'abord de séparer la ligne
par
Mais possible que tu doive encore séparer Sheets et range.
Et tu dit pas sur quel ligne ca bug.
A+
Essaye d'abord de séparer la ligne
Set a = Workbooks("bd_personnel.xls").Worksheets("liste").Range("a2")
par
Workbooks("bd_personnel.xls").Activate Set a = Sheets("liste").Range("a2")
Mais possible que tu doive encore séparer Sheets et range.
Et tu dit pas sur quel ligne ca bug.
A+
Bonjour,
1/Dis nous où ça plante et quel est le message (ne serait ce pas à a=textbox1?)
2/ sub creation_formateur est elle dans un module ou sur la feuille code de l'usf ?
Michel
1/Dis nous où ça plante et quel est le message (ne serait ce pas à a=textbox1?)
2/ sub creation_formateur est elle dans un module ou sur la feuille code de l'usf ?
Michel
hum ca marche en fait mais le programme est très long...
faut que je me débrouille pour fair en sorte que ça aille plus vite.
Juste pour le principe, comment feraiez vous pour à partir d'un userform, copier des informations dans un autre classeur ?
ce que j'ai fais marche mais ça fait un peu bricolage je trouve et si vous avez une meilleure idée je suis preneur.
Merci en tout cas.
faut que je me débrouille pour fair en sorte que ça aille plus vite.
Juste pour le principe, comment feraiez vous pour à partir d'un userform, copier des informations dans un autre classeur ?
ce que j'ai fais marche mais ça fait un peu bricolage je trouve et si vous avez une meilleure idée je suis preneur.
Merci en tout cas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai deja repondu a ta première question oui ca marche pour l'autre sub creation_formateur dans la feuille code de usf
M'étonnerait qu'elle fonctionne, avec tes imbrigations de If / End If ??
teste ca..
Pas tester, j'ai pas tes classeurs
et ca dépend aussi d'où est mis la macro.
A+
teste ca..
Sub creation_formateur() Dim Lig As Integer Workbooks("bd_personnel.xls").Activate Worksheets("liste").Select Lig = Range("A65536").End(xlUp).Row + 1 Cells(Lig, 1) = TextBox1.Value Cells(Lig, 2) = TextBox2.Value Cells(Lig, 3) = TextBox3.Value Cells(Lig, 5) = TextBox4.Value Cells(Lig, 6) = textbox6.Value If CheckBox1 Then Cells(Lig, 4) = "Français" End If If OptionButton1 = True Then Cells(Lig, 7) = "Ecole" ElseIf OptionButton2 = True Then Cells(Lig, 7) = "Travail" Else Cells(Lig, 7) = "AUTRE" End If If OptionButton4 = True Then Cells(Lig, 8) = "5-2" ElseIf OptionButton5 = True Then Cells(Lig, 8) = "5-3" ElseIf OptionButton6 = True Then Cells(Lig, 8) = " 4-3" Else Cells(Lig, 8) = "Adm" End If End Sub
Pas tester, j'ai pas tes classeurs
et ca dépend aussi d'où est mis la macro.
A+
salut
merci pour ton code.
Ca bug à : Cells(Lig, 1) = TextBox1.Value
Je vais essayer de le modifier et reviens vers toi si je bloque.
Juste une chose peux tu m'expliquer cette partie là pour ma culture perso ;) :
Range("A65536").End(xlUp).Row + 1
Je vois plus ou moins ce que tu fais mais après range("a65536") je comprend pas.
Sinon ce que j'avais fais en haut (avec modif) fonctionnait mais c'était très lent... plus minute :D
Merci
merci pour ton code.
Ca bug à : Cells(Lig, 1) = TextBox1.Value
Je vais essayer de le modifier et reviens vers toi si je bloque.
Juste une chose peux tu m'expliquer cette partie là pour ma culture perso ;) :
Range("A65536").End(xlUp).Row + 1
Je vois plus ou moins ce que tu fais mais après range("a65536") je comprend pas.
Sinon ce que j'avais fais en haut (avec modif) fonctionnait mais c'était très lent... plus minute :D
Merci
Lig = Range("A65536").End(xlUp).Row + 1
remplace..
While a <> "" Set a = a.Offset(1, 0) Wend
Recherche 1ère ligne vide..
Quand arrèté sur la ligne Cells(Lig, 1) = TextBox1.Value
Tape dans la fenêtre exécution..
Print Lig et voir combien ca donne, cela arrive que cette fonction marche pas et il faut la remplacer par...
Lig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
Quand lig fonctionne tu tape dans exécution..
Print TextBox1.value >> enter
et tu dit ..