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"
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
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éeAlors :
Range("A" & L).Value = ComboBox1 ‘ elle concerne ("Tableau de Bord ")
Range("B" & L).Value = TB1 ‘et ca aussiSolution :
With Sheets("Données")
.Range("A" & L).Value = ComboBox1
.Range("B" & L).Value = TB1
…………………………………………..
End withou
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