MeliAntho
Messages postés7Date d'inscriptionvendredi 28 novembre 2014StatutMembreDernière intervention 9 décembre 2014
-
Modifié par pijaku le 10/12/2014 à 09:59
MeliAntho -
14 déc. 2014 à 22:55
Bonjour,
Dans ma feuille "Récapitulatif" j'ai un tableau ou sont stockées les données saisies par les utilisateurs sur la feuille "Identité".
Un bouton final permet de remettre à zéro les cellules ou l'utilisateur doit saisir , enregistrer le classeur et stocker les données dans la base de la feuille "Récap".
Or , à chaque fois que j'enregistre au lieu d'ajouter une ligne avec les données du nouvel utilisateurs, les données de l'utilisateur précédent s'effacent alors que je voudrais que tout reste.
Voici mon code , merci de m'aiguiller:
Sub Bouton11_Cliquer()
Dim Civilité As String
Dim Nom As String
Dim Prénom As String
Dim DDatenaissance As Date
Dim Niveauétudes As String
Dim RBG As Long
Dim PDC As Integer
Dim mensualités As Integer
Dim C As Object
Civilité = Worksheets("Identité").Range("c3").Value
Nom = Worksheets("Identité").Range("c5").Value
Prénom = Worksheets("Identité").Range("C7").Value
DDatenaissance = Worksheets("Identité").Range("C9").Value
Niveauétudes = Worksheets("Identité").Range("c11").Value
RBG = Worksheets("Identité").Range("E18").Value
PDC = Worksheets("Identité").Range("F49").Value
mensualités = Worksheets("Identité").Range("O66").Value
Set C = Worksheets("Récapitulatif").Range("B3")
'C.Select
C.Offset(0, 0).Value = Civilité
C.Offset(0, 1).Value = Nom
C.Offset(0, 2).Value = Prénom
C.Offset(0, 3).Value = DDatenaissance
C.Offset(0, 4).Value = Niveauétudes
C.Offset(0, 5).Value = RBG
C.Offset(0, 6).Value = PDC
C.Offset(0, 7).Value = mensualités
Selection.EntireRow.Insert
MsgBox (" Votre simulation a bien été prise en compte !"), vbInformation, "Merci pour votre participation"
Worksheets("Identité").Range("A57:L74").Interior.ColorIndex = 15
Worksheets("Identité").Range("C3,C5,C7,C9,C11,E9,E18").Value = none
ActiveWorkbook.Save
Application.Quit
End Sub
Je veux justement que sa insère à chaque fois une.nouvelle ligne au dessus en gardant les données de l'utilisateur précédent dans la ligne qui va donc ce décaler en dessous. Sauf que mon problème c'est que sa ne garde pas les données de l'utilisateur précédent et moi j'ai besoin d'avoir une base de données des utilisateurs.
Merci pour votre réponse
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209
>
MeliAntho
9 déc. 2014 à 19:15
Merci de me dire merci, mais tu n'as pas répondu à mon point 1) !
Et la question posée en 1) est pourtant, déjà, une réponse ...
MeliAntho
>
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018 9 déc. 2014 à 20:30
La cellule B3 Correspond à la première cellule de mon tableau vide. Les offset décalé à chaque fois d'une colonne à droite car j'ai 8 colonnes.
Que je mette le c.select ou pas sa ne fonctionne pas.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 9 déc. 2014 à 22:42
C'est tout simplement qu'il n'est pas sur sa feuille Récap lorsque le code est lancé ...Et sa "selection" est ailleurs
De toutes manières : ne jamais travailler à coups de Select, Activate, Selection, etc ... , mais directement avec les objets Excel ...
Préciser C, par ailleurs. C'est un Range ===>>
Ceci ne peut que fonctionner :
Dim C As Range with Worksheets("Identité") Civilité = .Range("c3").Value Nom = .Range("c5").Value Prénom = .Range("C7").Value DDatenaissance = .Range("C9").Value Niveauétudes = .Range("c11").Value RBG = .Range("E18").Value PDC = .Range("F49").Value mensualités = .Range("O66").Value end with Set C = Worksheets("Récapitulatif").Range("B3") with C .Offset(0, 0).Value = Civilité .Offset(0, 1).Value = Nom .Offset(0, 2).Value = Prénom .Offset(0, 3).Value = DDatenaissance .Offset(0, 4).Value = Niveauétudes .Offset(0, 5).Value = RBG .Offset(0, 6).Value = PDC .Offset(0, 7).Value = mensualités .EntireRow.Insert end with
D'où que parte le code
A condition (bien évidemment) :
- qu'existent bien sous ces noms exacts les deux feuilles en cause
- que les valeurs à recopier soient bien dans les cellules précisées
- que la feuille de destination ne soit pas protégée
Et (je le redis) que c'est bien au-dessus de la 3ème ligne que l'on veut insérer une ligne ...
9 déc. 2014 à 19:09
Je veux justement que sa insère à chaque fois une.nouvelle ligne au dessus en gardant les données de l'utilisateur précédent dans la ligne qui va donc ce décaler en dessous. Sauf que mon problème c'est que sa ne garde pas les données de l'utilisateur précédent et moi j'ai besoin d'avoir une base de données des utilisateurs.
Merci pour votre réponse
9 déc. 2014 à 19:15
Et la question posée en 1) est pourtant, déjà, une réponse ...
9 déc. 2014 à 20:30
Que je mette le c.select ou pas sa ne fonctionne pas.
9 déc. 2014 à 20:31