Enregistrement de données dans la bonne feuille

Bonjour à tous,

Je précise avant tout que, à la base je ne suis pas doué pour l'informatique... Je me lance dans un projet mais suis bloqué avec des détails.....

J'ai créé un fichier excel comprenant plusieurs onglets :

  • "Données" où sont compilées mes informations
  • "Tableau de bord" qui sera mon "bureau"
(et 3 autres feuilles mais qui ne posent pas de problème)

L'idée est de faire ressortir un Userform en cliquant sur un bouton "Gestion des dossiers" sur la feuille "Tableau de Bord".

Le problème est que, lorsque je demande a insérer mes données (bouton "ajouter" ou "modifier"), elles ne s'inscrivent pas dans la feuille "données" mais sur la feuille "Tableau de bord"

Pour info, lorsque je j'ouvre mon Userform depuis la feuille "données", ca fonctionne.

Je pense que le soucis vient du fait que je dois préciser l'inscription sur la bonne feuille, mais après avoir essayé plusieurs modifications je n'y arrive pas...

Ci-joint mon code en entier -mais si je ne me trompe pas, le soucis vient du "Private Sub ComboBox1_change()"- et le fichier joint.

Je vous suis d'avance très reconnaissant pour toute l'aide que vous pourrez m'apporter...

En espérant vous lire prochainement...

Option Explicit

Dim Ws As Worksheet

Dim NbLignes As Integer

Private Sub CommandButton1_Click()

Unload Me

End Sub

Private Sub CommandButton3_Click()

Dim L As Integer

If MsgBox("Etes-vous certain de vouloir créer ce nouveau dossier ?", vbYesNo, "CONFIRMATION") = vbYes Then

L = Sheets("Données").Range("a65536").End(xlUp).Row + 1

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

Range("B" & L).Value = TB1

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

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

Range("E" & L).Value = TB4

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

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

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

Range("I" & L).Value = TB8

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

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

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

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

Range("N" & L).Value = TB13

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

Range("P" & L).Value = TB15

Range("Q" & L).Value = TB16

Range("R" & L).Value = TB17

Range("S" & L).Value = TB18

Range("T" & L).Value = TB19

Range("U" & L).Value = TB20

Range("V" & L).Value = TB21

Range("W" & L).Value = TB22

Range("X" & L).Value = TB23

Range("Y" & L).Value = TB24

Range("Z" & L).Value = TB25

Range("AA" & L).Value = TB26

Range("AB" & L).Value = TB27

Range("AD" & L).Value = TB29

Range("AG" & L).Value = TB32

Range("AH" & L).Value = TB33

Range("AI" & L).Value = TB34

Range("AJ" & L).Value = TB35

Range("AK" & L).Value = TB36

Range("AL" & L).Value = TB37

Range("AM" & L).Value = TB38

Range("AN" & L).Value = TB39

Range("AO" & L).Value = TB40

Range("AP" & L).Value = TB41

Range("AQ" & L).Value = TB42

Range("AR" & L).Value = TB43

Range("AS" & L).Value = TB44

Range("AT" & L).Value = TB45

End If

MsgBox ("Dossier ajouté")

Unload Me

UserForm1.Show

End Sub

Private Sub CommandButton4_Click()

Dim Ctrl As Control

For Each Ctrl In Me.Controls

If TypeName(Ctrl) = "TextBox" Then

Ctrl.Text = ""

End If

If TypeName(Ctrl) = "ComboBox" Then

Ctrl.Text = ""

End If

Next

End Sub

Private Sub Userform_Initialize()

Dim J As Long

Dim I As Integer

Dim TB

Set Ws = Sheets("Données")

NbLignes = Ws.Range("A65536").End(xlUp).Row

With Me.ComboBox1

For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row

.AddItem Ws.Range("A" & J)

Next J

End With

'Alimente la liste déroulante "Civilité"

For I = 2 To Sheets("Listes").Range("A65536").End(xlUp).Row

TB1 = Sheets("Listes").Range("A" & I)

If TB1.ListIndex = -1 Then TB1.AddItem Sheets("Listes").Range("A" & I)

Next I

'Alimente la liste déroulante "Agence"

For I = 2 To Sheets("Listes").Range("B65536").End(xlUp).Row

TB4 = Sheets("Listes").Range("B" & I)

If TB4.ListIndex = -1 Then TB4.AddItem Sheets("Listes").Range("B" & I)

Next I

'Alimente la liste déroulante "Conseiller"

For I = 2 To Sheets("Listes").Range("C65536").End(xlUp).Row

TB5 = Sheets("Listes").Range("C" & I)

If TB5.ListIndex = -1 Then TB5.AddItem Sheets("Listes").Range("C" & I)

Next I

'Alimente la liste déroulante "OBJET"

For I = 2 To Sheets("Listes").Range("D65536").End(xlUp).Row

TB6 = Sheets("Listes").Range("D" & I)

If TB6.ListIndex = -1 Then TB6.AddItem Sheets("Listes").Range("D" & I)

Next I

'Alimente la liste déroulante "PRESCRIPTEUR"

For I = 2 To Sheets("Listes").Range("E65536").End(xlUp).Row

TB8 = Sheets("Listes").Range("E" & I)

If TB8.ListIndex = -1 Then TB8.AddItem Sheets("Listes").Range("E" & I)

Next I

'Alimente la liste déroulante "ASSURANCE"

For I = 2 To Sheets("Listes").Range("F65536").End(xlUp).Row

TB11 = Sheets("Listes").Range("F" & I)

If TB11.ListIndex = -1 Then TB11.AddItem Sheets("Listes").Range("F" & I)

Next I

'Alimente la liste déroulante "STATUT"

For I = 2 To Sheets("Listes").Range("G65536").End(xlUp).Row

TB12 = Sheets("Listes").Range("G" & I)

If TB12.ListIndex = -1 Then TB12.AddItem Sheets("Listes").Range("G" & I)

Next I

'Alimente la liste déroulante "PLAN DE FINANCEMENT"

For I = 2 To Sheets("Listes").Range("H65536").End(xlUp).Row

TB14 = Sheets("Listes").Range("H" & I)

If TB14.ListIndex = -1 Then TB14.AddItem Sheets("Listes").Range("H" & I)

Next I

'Alimente la liste déroulante "Maestro"

For I = 2 To Sheets("Listes").Range("I65536").End(xlUp).Row

TB15 = Sheets("Listes").Range("I" & I)

If TB15.ListIndex = -1 Then TB15.AddItem Sheets("Listes").Range("I" & I)

Next I

'Alimente la liste déroulante "ASSURANCE"

For I = 2 To Sheets("Listes").Range("J65536").End(xlUp).Row

TB16 = Sheets("Listes").Range("J" & I)

If TB16.ListIndex = -1 Then TB16.AddItem Sheets("Listes").Range("J" & I)

Next I

'Alimente la liste déroulante "DIAG ADE"

For I = 2 To Sheets("Listes").Range("K65536").End(xlUp).Row

TB17 = Sheets("Listes").Range("K" & I)

If TB17.ListIndex = -1 Then TB17.AddItem Sheets("Listes").Range("K" & I)

Next I

'Alimente la liste déroulante "ANAYLSE PARC"

For I = 2 To Sheets("Listes").Range("L65536").End(xlUp).Row

TB20 = Sheets("Listes").Range("L" & I)

If TB20.ListIndex = -1 Then TB20.AddItem Sheets("Listes").Range("L" & I)

Next I

'Alimente la liste déroulante "JUSTIFS"

For I = 2 To Sheets("Listes").Range("M65536").End(xlUp).Row

TB23 = Sheets("Listes").Range("M" & I)

If TB23.ListIndex = -1 Then TB23.AddItem Sheets("Listes").Range("M" & I)

Next I

'Alimente la liste déroulante "COMPLETUDE"

For I = 2 To Sheets("Listes").Range("N65536").End(xlUp).Row

TB25 = Sheets("Listes").Range("N" & I)

If TB25.ListIndex = -1 Then TB25.AddItem Sheets("Listes").Range("N" & I)

Next I

'Alimente la liste déroulante "DOM REVENUS"

For I = 2 To Sheets("Listes").Range("O65536").End(xlUp).Row

TB32 = Sheets("Listes").Range("O" & I)

If TB32.ListIndex = -1 Then TB32.AddItem Sheets("Listes").Range("O" & I)

Next I

'Alimente la liste déroulante "ESPRIT LIBRE"

For I = 2 To Sheets("Listes").Range("P65536").End(xlUp).Row

TB33 = Sheets("Listes").Range("P" & I)

If TB33.ListIndex = -1 Then TB33.AddItem Sheets("Listes").Range("P" & I)

Next I

'Alimente la liste déroulante "P24"

For I = 2 To Sheets("Listes").Range("Q65536").End(xlUp).Row

TB35 = Sheets("Listes").Range("Q" & I)

If TB35.ListIndex = -1 Then TB35.AddItem Sheets("Listes").Range("Q" & I)

Next I

'Alimente la liste déroulante "PROVISIO"

For I = 2 To Sheets("Listes").Range("R65536").End(xlUp).Row

TB40 = Sheets("Listes").Range("R" & I)

If TB40.ListIndex = -1 Then TB40.AddItem Sheets("Listes").Range("R" & I)

Next I

'Alimente la liste déroulante "RDV CSEP"

For I = 2 To Sheets("Listes").Range("S65536").End(xlUp).Row

TB41 = Sheets("Listes").Range("S" & I)

If TB41.ListIndex = -1 Then TB41.AddItem Sheets("Listes").Range("S" & I)

Next I

'Alimente la liste déroulante "RDV BNPP IMMO"

For I = 2 To Sheets("Listes").Range("T65536").End(xlUp).Row

TB42 = Sheets("Listes").Range("T" & I)

If TB42.ListIndex = -1 Then TB42.AddItem Sheets("Listes").Range("T" & I)

Next I

'Alimente la liste déroulante "RDV BPF"

For I = 2 To Sheets("Listes").Range("U65536").End(xlUp).Row

TB43 = Sheets("Listes").Range("U" & I)

If TB43.ListIndex = -1 Then TB43.AddItem Sheets("Listes").Range("U" & I)

Next I

TB1 = "" 'Définit à l'ouverture de l'UserForm la liste déroulante "civilité" comme vide

TB4 = "" 'Agence

TB5 = "" 'Conseiller

TB6 = "" 'Objet

TB8 = "" 'Prescripteur

TB11 = "" 'Assurance

TB12 = "" 'Statut

TB14 = "" 'Plan de financement

TB15 = "" 'Maestro

TB16 = "" 'Assurance

TB17 = "" 'DIAG ADE

TB20 = "" 'Analyse parc

TB23 = "" 'Justifs

TB25 = "" 'Completude

TB32 = "" 'DOM Revenus

TB33 = "" 'Esprit Libre

TB35 = "" 'P24

TB40 = "" 'Provisio

TB41 = "" 'RDV CSEP

TB42 = "" 'RDV BNPP IMMO

TB43 = "" 'RDV BPF

End Sub

Private Sub CommandButton2_Click()

If MsgBox("Etes-vous certain de vouloir modifier ce dossier ?", vbYesNo, "MODIFICATION") = vbYes Then

Dim Ligne As Long

Dim I As Integer

If Me.ComboBox1.ListIndex = -1 Then Exit Sub

Ligne = Me.ComboBox1.ListIndex + 2

For I = 1 To 45

If Me.Controls("TB" & I).Visible = True Then

Ws.Cells(Ligne, I + 1) = Me.Controls("TB" & I)

End If

Next I

End If

With Ws.Range("D2:D10")

.NumberFormat = "0"

.Value = .Value

End With

End Sub

Private Sub Combobox1_Change()

Dim Ligne As Long

Dim I As Integer

Dim TB

If Me.ComboBox1.ListIndex = -1 Then Exit Sub

Ligne = Me.ComboBox1.ListIndex + 2

For I = 1 To 45

Me.Controls("TB" & I) = Ws.Cells(Ligne, I + 1)

Next I

End Sub

73ecker.xlsm (187.30 Ko)

bonsoir

L'idée est de faire ressortir un Userform en cliquant sur un bouton "Gestion des dossiers" sur la feuille "Tableau de Bord".

If MsgBox("Etes-vous certain de vouloir créer ce nouveau dossier ?", vbYesNo, "CONFIRMATION") = vbYes Then

L = Sheets("Données").Range("a65536").End(xlUp).Row + 1  ‘Ca est pour feuille donneés

Range("A" & L).Value = ComboBox1  ‘ mais ca est pour la feuille active quelque soit
Range("B" & L).Value = TB1   ‘et ca aussi
………………………………………………….

En cliquant sur un bouton "Gestion des dossiers" sur la feuille "Tableau de Bord" vous aurez :

Sheets("Tableau de Bord ")….   ‘activée

Alors :

Range("A" & L).Value = ComboBox1  ‘ elle concerne  ("Tableau de Bord ")
Range("B" & L).Value = TB1   ‘et ca aussi

Solution :

With Sheets("Données")
.Range("A" & L).Value = ComboBox1  
.Range("B" & L).Value = TB1   
…………………………………………..
End with

ou

Set wsdon= Sheets("Données")
Set wsbord= Sheets("Tableau de Bord ")
ws.Range("A" & L).Value = ComboBox1  
ws.Range("B" & L).Value = TB1   
…………………………………………..

Je précise avant tout que, à la base je ne suis pas doué pour l'informatique... Je me lance dans un projet mais suis bloqué avec des détails.....

Alors bon courage

Bonjour,

Tu apprends à utiliser la balise Code pour mettre ton code dans un post.

Tu apprends à coder un adressage en VBA en dotant toutes tes expressions de qualificateurs d'objets.

(tu alignes des Range sans rien devant [ni point ni expression suivie d'un point] et tu t'étonnes que tes données n'aillent pas où tu veux !)

Tu apprends à faire des boucles (qui t'éviteront de nous infliger des énumérations interminables).

Après ! la discussion pourra commencer !

Ceci étant, j'ai conscience, sans avoir pris la peine de lire ce code imbuvable, ni d'ouvrir ton fichier, d'avoir donné la solution au problème que tu as posé !!!

Cordialement.

Bonjour

Merci pour ta réponse je vais tester cela au plus vite.

Je suis bien conscient que la forme ne doit pas être correcte. .. j'en suis désolé.... comme je le précisais, je ne suis pas doué et cest la premiere fois que je me lance dans la creation dun formulaire... alors je comprends bien que mon code doit être imbuvable pour vous.

C'est pourquoi je vous remercie tout de même d'avoir pris le temps de me répondre

..

Bon, je teste cela et reviens vers vous au plus vite.

Merci encore !

Bonjour

Merci à amir pour sa réponse ! Ça fonctionne!

Maintenant j'ai d'autres problématiques.... normal vu que je débute....

A très bientôt et encore merci à amir

Rechercher des sujets similaires à "enregistrement donnees bonne feuille"