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.... ), tu arrivera à quelque chose.

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

Rechercher des sujets similaires à "completer code vba"