Pour completer un code VBA
Bonjour à tous.
J'ai un code VBA dans un formulaire qui me permet de remplir les données du formulaire dans un tableau sur une feuil qui se nomme GESTION CHANTIER. cela fonctionne à merveille.
le voici :
Option Explicit
Dim ws As Worksheet, a()
Private Sub CommandButton1_Click()
'Ajouter
Dim Ligne As Long
If Trim(Me.TextBox1) = "" Then
MsgBox "Numéro obligatoire"
ElseIf Not IsDate(Me.TextBox9) Then
MsgBox "Date non conforme"
Me.TextBox9 = ""
Me.TextBox9.SetFocus
Else
If ws.Range("A3") <> "" Then
Ligne = ws.Range("A2").End(xlDown).Row + 1
Else
Ligne = 3
End If
ws.Range("A" & Ligne) = Me.TextBox1.Value ' Numéro
ws.Range("B" & Ligne) = Me.TextBox2.Value ' Nom
ws.Range("C" & Ligne) = Me.TextBox3.Value ' Client
ws.Range("D" & Ligne) = Me.TextBox4.Value ' Code
ws.Range("E" & Ligne) = Me.TextBox5.Value ' Lieu
ws.Range("F" & Ligne) = Me.TextBox6.Value ' Code postal et Ville
ws.Range("G" & Ligne) = Me.TextBox7.Value ' Tarif
ws.Range("H" & Ligne) = Me.TextBox8.Value ' Nombre IR
ws.Range("I" & Ligne) = CDate(Me.TextBox9.Value) ' Date
ws.Range("N" & Ligne) = Me.TextBox10.Value ' Jour de protection
ws.Range("O" & Ligne) = Me.TextBox11.Value ' Heure MES/MHS
ws.Range("P" & Ligne) = Me.TextBox12.Value ' Code client
ws.Range("Q" & Ligne) = Me.TextBox13.Value ' Code accès
ws.Range("r" & Ligne) = Me.TextBox17.Value ' cour ou rue
ws.Range("s" & Ligne) = Me.TextBox14.Value ' Contact
ws.Range("t" & Ligne) = Me.TextBox15.Value ' Téléphone
ws.Range("u" & Ligne) = Me.TextBox18.Value ' Commercial
Unload Me
End If
End Sub
Private Sub UserForm_Initialize()
Set ws = Sheets("GESTION CHANTIER")
End Sub
Je cherche absolument à ce que ce code recopie en même temps dans un autre tableau qui est sur la feuil Visu install.
J'ai donc besoin que : (actuellement mon tableau sur la feuil Visu install est rempli, il faut donc que le code commence la recopie à partir de la ligne 243. et à chaque recopie il me faut un row +1
TextBox3 se recopie sur la feuil Visu install en A243
TextBox5 se recopie sur la feuil Visu install en B243
TextBox9 se recopie sur la feuil Visu install en C243
Merci d'avance pour votre aide qui me sera precieuse.
J'ai tenté de vous fournir un exemple, mais quand j'exporte la feuille visu install, j'exporte le formulaire, mais rien ne fonctionne car tout est relié à d'autres feuil.
Bonsoir tous le monde,
Quelqu'un pourrais t'il m'aider svp. je suis bloqué depuis cet apres midi a tout essayer
re bonsoir ..
Au secoursssss aidez moi je suis en train de me rendre fou devant mon excel lol
Bonjour tous le monde ...
Quelqu'un à une solution pour moi?
merci d'avance
Salut
Avec la fonction With tu peux choisir dans quelle feuille entré les données je suppose quand faisant
With Worksheet (N°de feuille)
ws.Range("A" & Ligne) = Me.TextBox1.Value ' Numéro
ws.Range("B" & Ligne) = Me.TextBox2.Value ' Nom
ws.Range("C" & Ligne) = Me.TextBox3.Value ' Client
ws.Range("D" & Ligne) = Me.TextBox4.Value ' Code
ws.Range("E" & Ligne) = Me.TextBox5.Value ' Lieu
ws.Range("F" & Ligne) = Me.TextBox6.Value ' Code postal et Ville
ws.Range("G" & Ligne) = Me.TextBox7.Value ' Tarif
ws.Range("H" & Ligne) = Me.TextBox8.Value ' Nombre IR
ws.Range("I" & Ligne) = CDate(Me.TextBox9.Value) ' Date
ws.Range("N" & Ligne) = Me.TextBox10.Value ' Jour de protection
ws.Range("O" & Ligne) = Me.TextBox11.Value ' Heure MES/MHS
ws.Range("P" & Ligne) = Me.TextBox12.Value ' Code client
ws.Range("Q" & Ligne) = Me.TextBox13.Value ' Code accès
ws.Range("r" & Ligne) = Me.TextBox17.Value ' cour ou rue
ws.Range("s" & Ligne) = Me.TextBox14.Value ' Contact
ws.Range("t" & Ligne) = Me.TextBox15.Value ' Téléphone
ws.Range("u" & Ligne) = Me.TextBox18.Value ' Commercial
end With
il faut adapter à la ligne 247 ( je ne suis pas assez doué pour te le faire....
Moi j'ai le code suivant :
With Worksheets(5)
derlign = .Range("a65536").End(xlUp).Row + 1
.Cells(derlign, 1).Value = TextBox2
.Cells(derlign, 2).Value = ComboBox1
.Cells(derlign, 3).Value = ComboBox2
.Cells(derlign, 4).Value = température
.Cells(derlign, 5).Value = camion
.Cells(derlign, 6).Value = tenue
.Cells(derlign, 7).Value = TextBox3
End With
A voir si tu peux adapter...
J'espère que tu va trouvé, avec ça.... Bon courage
coucou, merci de ta reponse mais je n'y arrive pas,
En faite le code que j'ai mis dans mon 1er post, me permet de copier les elements d'un formulaire dans le tableau qui se trouve sur la feuille GESTION CHANTIER.
Ce que je souhaite, c'est simplement rajouter à ce code qui fonctionne tres bien les fonctions suivantes :
Recopier la TEXTBOX3, TEXTBOX5 et TEXTBOX9 sur une feuille qui s'appel Visu install.
La textbox3 doit se recopier dans A de la feuil Visu install
La textbox5 doit se recopier dans B de la feuil Visu install
La textbox9 doit se recopier dans C de la feuil Visu install.
Voici le code ci-dessous qui fonctionne tres bien pour la recopie dans GESTION CHANTIER.
Option Explicit
Dim ws As Worksheet, a() ------------------> dois-je nommer la feuille Visu install ici????
Private Sub CommandButton1_Click()
Dim Ligne As Long
If Trim(Me.TextBox1) = "" Then
MsgBox "Numéro obligatoire"
ElseIf Not IsDate(Me.TextBox9) Then
MsgBox "Date non conforme"
Me.TextBox9 = ""
Me.TextBox9.SetFocus
Else
If ws.Range("A3") <> "" Then
Ligne = ws.Range("A2").End(xlDown).Row + 1
Else
Ligne = 3
End If
ws.Range("A" & Ligne) = Me.TextBox1.Value ' Numéro
ws.Range("B" & Ligne) = Me.TextBox2.Value ' Nom
ws.Range("C" & Ligne) = Me.TextBox3.Value ' Client
ws.Range("D" & Ligne) = Me.TextBox4.Value ' Code
ws.Range("E" & Ligne) = Me.TextBox5.Value ' Lieu
ws.Range("F" & Ligne) = Me.TextBox6.Value ' Code postal et Ville
ws.Range("G" & Ligne) = Me.TextBox7.Value ' Tarif
ws.Range("H" & Ligne) = Me.TextBox8.Value ' Nombre IR
ws.Range("I" & Ligne) = CDate(Me.TextBox9.Value) ' Date
ws.Range("N" & Ligne) = Me.TextBox10.Value ' Jour de protection
ws.Range("O" & Ligne) = Me.TextBox11.Value ' Heure MES/MHS
ws.Range("P" & Ligne) = Me.TextBox12.Value ' Code client
ws.Range("Q" & Ligne) = Me.TextBox13.Value ' Code accès
ws.Range("r" & Ligne) = Me.TextBox17.Value ' cour ou rue
ws.Range("s" & Ligne) = Me.TextBox14.Value ' Contact
ws.Range("t" & Ligne) = Me.TextBox15.Value ' Téléphone
ws.Range("u" & Ligne) = Me.TextBox18.Value ' Commercial
Unload Me
End If
End Sub
Private Sub UserForm_Initialize()
Set ws = Sheets("GESTION CHANTIER") -------------------> Dois-je faire apparaitre la feuille Suivi install ici????
End Sub
Bonsoir
svpppppp aidez moi au secours lol
Bonjour
moi je ferait comme ca
a toi de voir
Ligne = Ws.Range("B" & Rows.Count).End(xlUp).Row + 1
For C = 1 To 8
Ws.Cells(Ligne, C).Value = Controls("TextBox" & C).Value
Next
Ws.Cells(Ligne, 9).Value = CDate(TextBox9.Value)
For C = 10 To 18
Ws.Cells(Ligne, C).Value = Controls("TextBox" & C).Value
Next
'Set Ws = change nom Onglet
Ws.Range("A243").Value = TextBox3.Value
Ws.Range("B243").Value = TextBox5.Value
Ws.Range("C243").Value = TextBox9.Value
A+
Maurice
Bonsoir le forum, bonsoir Maurice,
J'ai un amis qui me dit de remplacer mon code existant par celui ci
Option Explicit
Dim a()
Private Sub CommandButton1_Click()
Dim GC As Worksheet
Dim VI As Worksheet
Dim LGC As Long
Dim LVI As Long
Set GC = Sheets("GESTION CHANTIER")
Set VI = Worksheets("Visu install")
If Trim(Me.TextBox1) = "" Then
Me.TextBox1.SetFocus
MsgBox "Numéro obligatoire"
Exit Sub
End If
If Not IsDate(Me.TextBox9) Then
MsgBox "Date non conforme"
Me.TextBox9 = ""
Me.TextBox9.SetFocus
Exit Sub
End If
LGC = IIf(GC.Range("A3") = "", 3, GC.Range("A2").End(xlDown).Row + 1)
LVI = IIf(VI.Range("A3") = "", 3, VI.Range("A2").End(xlDown).Row + 1)
GC.Range("A" & LGC) = Me.TextBox1.Value ' Numéro
GC.Range("B" & LGC) = Me.TextBox2.Value ' Nom
GC.Range("C" & LGC) = Me.TextBox3.Value ' Client
GC.Range("D" & LGC) = Me.TextBox4.Value ' Code
GC.Range("E" & LGC) = Me.TextBox5.Value ' Lieu
GC.Range("F" & LGC) = Me.TextBox6.Value ' Code postal et Ville
GC.Range("G" & LGC) = Me.TextBox7.Value ' Tarif
GC.Range("H" & LGC) = Me.TextBox8.Value ' Nombre IR
GC.Range("I" & LGC) = CDate(Me.TextBox9.Value) ' Date
GC.Range("N" & LGC) = Me.TextBox10.Value ' Jour de protection
GC.Range("O" & LGC) = Me.TextBox11.Value ' Heure MES/MHS
GC.Range("P" & LGC) = Me.TextBox12.Value ' Code client
GC.Range("Q" & LGC) = Me.TextBox13.Value ' Code accès
GC.Range("r" & LGC) = Me.TextBox17.Value ' cour ou rue
GC.Range("s" & LGC) = Me.TextBox14.Value ' Contact
GC.Range("t" & LGC) = Me.TextBox15.Value ' Téléphone
GC.Range("u" & LGC) = Me.TextBox18.Value ' Commercial
VI.Cells(LVI, "A").Value = Me.TextBox3.Value ' Client
VI.Cells(LVI, "B").Value = Me.TextBox5.Value ' Lieu
VI.Cells(LVI, "C").Value = Cdtse(Me.TextBox9.Value) ' Date
Unload Me
End Sub
le seul truc c'est que mon tableau qui se trouve sur la feuil Visu install commence à la ligne 243.
Je doit modifier quoi dans son code? il est injoignable et je suis bloquer avec cela.
bon bein son code fonctionne nikel.
du coup je peux supprimer ceci
Private Sub UserForm_Initialize()
Set ws = Sheets("GESTION CHANTIER")
End Sub