Sub ShowForm()
UserForm1.Show
End Sub
Option Explicit
Private Sub cmdOK_Click()
Dim chn$
chn = TextBox1: [A1] = IIf(chn = "", Empty, chn)
chn = TextBox2: [A2] = IIf(chn = "", Empty, chn)
chn = TextBox3: [A3] = IIf(chn = "", Empty, chn)
End Sub
Merci soan pour ta réponse rapide ça fonctionne super.Bonjour PRUDHOMME12,
bienvenue sur le site XLD !
ton fichier en retour.
* fais Ctrl e ➯ affichage du formulaire UserForm1
* saisis le texte de ton choix dans les 3 TextBox, puis clique sur le bouton OK
➯ le texte des 3 TextBox est placé sur 3 lignes différentes, en A1 ; A2 ; A3
* supprime le texte des 3 TextBox, puis clique sur le bouton OK
➯ ça efface les 3 cellules A1 ; A2 ; A3
code VBA de Module1 (pour afficher le formulaire) :
VB:Sub ShowForm() UserForm1.Show End Sub
code VBA de UserForm1 :
VB:Option Explicit Private Sub cmdOK_Click() Dim chn$ chn = TextBox1: [A1] = IIf(chn = "", Empty, chn) chn = TextBox2: [A2] = IIf(chn = "", Empty, chn) chn = TextBox3: [A3] = IIf(chn = "", Empty, chn) End Sub
si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis.
soan
ok merci
Option Explicit
Private Sub cmdOK_Click()
Dim chn$, lig&, col%
lig = ActiveCell.Row: col = ActiveCell.Column
With Cells(lig, col)
chn = TextBox1: .Value = IIf(chn = "", Empty, chn)
chn = TextBox2: .Offset(1) = IIf(chn = "", Empty, chn)
chn = TextBox3: .Offset(2) = IIf(chn = "", Empty, chn)
End With
End Sub
merci soan@PRUDHOMME12
la cellule active est A1 ; sélectionne n'importe quelle cellule, par exemple C5 ; fais les mêmes manips que précédemment ➯ ça fait pareil, pour la cellule active et les 2 autres cellules situées juste dessous.
code VBA de Module1 : inchangé ; nouveau code VBA de UserForm1 :
VB:Option Explicit Private Sub cmdOK_Click() Dim chn$, lig&, col% lig = ActiveCell.Row: col = ActiveCell.Column With Cells(lig, col) chn = TextBox1: .Value = IIf(chn = "", Empty, chn) chn = TextBox2: .Offset(1) = IIf(chn = "", Empty, chn) chn = TextBox3: .Offset(2) = IIf(chn = "", Empty, chn) End With End Sub
soan
Option Explicit
Private Sub cmdOK_Click()
ActiveCell.Resize(3) = Application.Transpose(Array(TextBox1, TextBox2, TextBox3))
End Sub
Bonjour PatrickBonjour
perso je me simplifie la tache
VB:Option Explicit Private Sub cmdOK_Click() ActiveCell.Resize(3) = Application.Transpose(Array(TextBox1, TextBox2, TextBox3)) End Sub