Remplir 2 tableaux à partir d'un formulaire userform

Bonjour à tous,

Débutant.

J'ai créé un formulaire à partir d'un userform qui se décompose en deux séries de questions. Une fois les informations rentrées, je souhaiterais qu'une partie aille dans un tableau sur un premier onglet, et que le reste aille sur un tableau d'un second onglet.

J'ai pour cela tenté la commande suivante :

Private Sub CommandButton3_Click()

Dim L As Integer

If MsgBox("Confirmez-vous l’ajout de cette FM ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then

With Worksheets("Synthèse")

L = Sheets("Synthèse").Range("C65536").End(xlUp).Row + 1

Range("C" & L).Value = TextNum

Range("D" & L).Value = TextInd

Range("F" & L).Value = TextStatut

Range("G" & L).Value = TextDate

Range("H" & L).Value = TextNom

Range("G" & L).Value = TextDate

Range("F" & L).Value = ComboBox1

Range("J" & L).Value = TextING

Range("K" & L).Value = TextR_A

Range("L" & L).Value = TextRATP

Range("M" & L).Value = TextMont

Range("O" & L).Value = TextCom

End With

With Worksheets("Suivi_financier")

M = Sheets("Suivi_financier").Range("B65536").End(xlUp).Row + 1

Range("B" & M).Value = TextNum

Range("C" & M).Value = TestPost1

Range("E" & M).Value = TestPost11

End With

End If

End Sub

La première partie se renseigne très bien dans mon tableau. En revanche il ne se produit rien sur le 2e onglet où le tableau reste complètement vierge.

Je pense que je ne m'y prends pas de la bonne façon. Pourriez-vous m'indiquer quelle manip je pourrais utiliser pour alimenter mon second tableau.

Merci d'avance.

Cordialement,

Benjamin

Bonjour,

Le premier With ne sert à rien car tu es sur la feuille active c'est donc elle qui reçoit les informations.

Quand au deuxième With, si tu veux qu'il serve à quelque chose il ne faut pas oublier les "." avant Range...

(Si tu omets les "." C'est la Feuille active qui reçoit les données.)

Le code corrigé :

Private Sub CommandButton3_Click()
 Dim L As Integer
 If MsgBox("Confirmez-vous l’ajout de cette FM ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then

 L = Range("C65536").End(xlUp).Row + 1
 Range("C" & L).Value = TextNum
 Range("D" & L).Value = TextInd
 Range("F" & L).Value = TextStatut
 Range("G" & L).Value = TextDate
 Range("H" & L).Value = TextNom
 Range("G" & L).Value = TextDate
 Range("F" & L).Value = ComboBox1
 Range("J" & L).Value = TextING
 Range("K" & L).Value = TextR_A
 Range("L" & L).Value = TextRATP
 Range("M" & L).Value = TextMont
 Range("O" & L).Value = TextCom

 With Worksheets("Suivi_financier")
 M = .Range("B65536").End(xlUp).Row + 1
 .Range("B" & M).Value = TextNum
 .Range("C" & M).Value = TestPost1
 .Range("E" & M).Value = TestPost11
 End With

End If
End Sub

Je dépose mon document pour plus de clarté.


galopin01 a écrit :

Bonjour,

Le premier With ne sert à rien car tu es sur la feuille active c'est donc elle qui reçoit les informations.

Quand au deuxième With, si tu veux qu'il serve à quelque chose il ne faut pas oublier les "." avant Range...

(Si tu omets les "." C'est la Feuille active qui reçoit les données.)

Le code corrigé :

Private Sub CommandButton3_Click()
 Dim L As Integer
 If MsgBox("Confirmez-vous l’ajout de cette FM ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then

 L = Range("C65536").End(xlUp).Row + 1
 Range("C" & L).Value = TextNum
 Range("D" & L).Value = TextInd
 Range("F" & L).Value = TextStatut
 Range("G" & L).Value = TextDate
 Range("H" & L).Value = TextNom
 Range("G" & L).Value = TextDate
 Range("F" & L).Value = ComboBox1
 Range("J" & L).Value = TextING
 Range("K" & L).Value = TextR_A
 Range("L" & L).Value = TextRATP
 Range("M" & L).Value = TextMont
 Range("O" & L).Value = TextCom

 With Worksheets("Suivi_financier")
 M = .Range("B65536").End(xlUp).Row + 1
 .Range("B" & M).Value = TextNum
 .Range("C" & M).Value = TestPost1
 .Range("E" & M).Value = TestPost11
 End With

End If
End Sub

Bonjour,

Merci de ces précisions et du code.

En revanche, il ne s'affiche toujours rien dans le tableau du 2e onglet.

Une idée?

Bonjour,

Ce sont les cellules fusionnées qui mettent le b...

Défusionne la cellule B1 et tu verras que le N° s'inscrit bien

En revanche aucun des autres contrôles Textbox n'existe :

Tu les as nommés

TextPoste1

TextPoste2

et ainsi de suite...

Or dans le code

tu écris :

.Range("C" & M).Value = TestPost1 (sans e)

Dans ces conditions ça ne peut guère marcher.

Conseils :

1- Supprimer les cellules fusionnées.

2 - Ne pas utiliser les frames comme des éléments de décoration.

3 - Quand on a un grand nombre de Textbox, éviter de les renommer et les créer dans l'ordre des colonnes : Quand on est astucieux ça permet de remplacer 50 lignes de code par 3 seulement :

    For i = 1 To 50
    Cells(i, 1) = Me.Controls("TextBox" & i)
    Next i

A+

galopin01 a écrit :

Bonjour,

Ce sont les cellules fusionnées qui mettent le b...

Défusionne la cellule B1 et tu verras que le N° s'inscrit bien

En revanche aucun des autres contrôles Textbox n'existe :

Tu les as nommés

TextPoste1

TextPoste2

et ainsi de suite...

Or dans le code

tu écris :

.Range("C" & M).Value = TestPost1 (sans e)

Dans ces conditions ça ne peut guère marcher.

Conseils :

1- Supprimer les cellules fusionnées.

2 - Ne pas utiliser les frames comme des éléments de décoration.

3 - Quand on a un grand nombre de Textbox, éviter de les renommer et les créer dans l'ordre des colonnes : Quand on est astucieux ça permet de remplacer 50 lignes de code par 3 seulement :

    For i = 1 To 50
    Cells(i, 1) = Me.Controls("TextBox" & i)
    Next i

A+

Certes. C'est mieux comme ça.

Merci de ton aide!

Merci bien benjinain et merci aussi les conseilles

Bon soirée

Merci bien benjinain et merci aussi pour les conseilles

Bon soirée

Rechercher des sujets similaires à "remplir tableaux partir formulaire userform"