Perte des données des que excel est ouvert

jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 février 2008 - 6 juin 2006 à 12:31
jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 février 2008 - 7 juin 2006 à 16:13
Bonjour.
J'ai crée 3 userform. La première permet d'aller vers les 3 autres en cliquant sur un bouton après avoir selectionné la date. toutes les données saisies ensuite sont envoyée dans mon classeur excel dans une feuille spécifique. Mais j'ai un autre petit soucis. Quand je suis sous excel et que je rentre mes données toutes mes données s'écrivent normalement dans ma base de données . Si je reste sous excel et que je relance ma userform mes données réapparaissent à l'intérieur comme prévu. Par contre si je ferme mon document excel, quand je l'ouvre les données sont dans mes feuilles mais des que je lance ma userform elle apparait vide et toutes les données de mon classeur sont effacées. Comment faire pour que lorsque je selectionne la même date les données soient la meme si entre temps le classeur excel a ete fermé.? est ce qu'il y a une solution?
Je vous remercie
Jamelie

8 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 12:54
Salut jamélie,

il y a une solution, tu crées un Onglet en plus (que tu nommes par ex : "Temp")
et avant de fermer ton Userform, tu places ces données dans cette feuille, puis qund tu ouvres ta Form (UserFormX_Initialize()), vas chercher les données de cette feuille "Temp", pour les replacer dans le UserForm.

Si tu galères, tu le sais, n'hésite pas...

@++

  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 février 2008
6 juin 2006 à 16:02
le problème c'est que quand je reste sous excel tout fonctionne bien car j'ai le code qui permet quand j'enregistre dans ma userform de faire réapparaitre les données. mais c'est que quand je ferme excel et que je rouvre en fait je pense que c'est quand je fait load userform... eh bien ca me la lance mais elle est vierge à chaque fois et j'ai plus de 320 données à saisir alors si ca efface tout à chaque fois ca va pas etre top. C'est un outil que je crée pour une entreprise et je sais pas si je crée un onglet comme tu dit si ca va leur plaire. et je vois pas comment envoyer mes données vers cet onglet puisqu'elles sont envoyées vers une feuille excel.


Je suis vraiment désolée c'est pas simple tout ca. Peux tu m'expliquer plus ce que tu veux que je fasse stp?
Merci
Jamelie
0
jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 février 2008
6 juin 2006 à 16:04
a la rigueur pour que ca embrouille personne c'est possible que je fasse que l'onglet temp ne soit pas visible. Donc je peux faire ce que tu as dit et personne verra rien?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 16:32
Déjà, je suppose que tu as quelque part "Load UserFormX"      (X étant un chiffre bien sur)
et bien remplace ce terme par "UserFormX.Show"

En mode création, fais apparaitre ton UserForm et click dessus pour faire apparaitre le code et dans
UserFormX_Initialize(), met des trucs du genre
Me.TextBox1.Text = Sheets("Temp").Range("A1").Value
Me.TextBox2.Text = Sheets("Temp").Range("A2").Value

        etc...

Pour la feuille, dès que tu l'as rajouté, click droit dessus, propriété puis voit l'image :
ici, c'est Feuil2, toi ce sera Temp
Même invisible, tu devrais pouvoir récupérer tes infos quand même

@++




  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 février 2008
6 juin 2006 à 16:49
j'ai ca comme code:

Private Sub CommandButton1_Click()
If UpDateRowOK Then
    Load Form_Donnees_Par_Site
    Form_Donnees_Par_Site.Show
End If
End Sub

Pour le reste il va falloir que j'écrive 320fois les mêmes lignes quasiment?


sinon temp c'est un onglet sous excel? j'avais compris un onglet sur ma userform.


Et faut pas que ca débloque d'un mois à l'autre: si je dis à toutes mes données d'aller en A1, A2... pour le mois de janvier quand je selectionne février est ce que mes données de février vont aller s'écrire sur janvier parce que sinon ca va tout me changer.


Je sais pas si je suis claire.


Je vais essayer ce que tu m'as dis.


Merci


Jamelie
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 17:19
Alors je te dis un truc en passant, évite les Load quand tu appelles un UserForm de ta feuille, ça plante suivant ce que tu veux faire.
Afficher : UserForm.Show
Enlever : UserForm.Hide (en gardant les infos, si réaffichage / mais si fermeture, plus aucune infos)
Enlever2 : Unload UserForm (décharge toutes les infos)

L'onglet, il est effectivement à placer dans Excel et pas dans la Form.
Si j'ai bien compris, sur ton UserForm, tu as un bouton Valider et quand tu click dessus, tes données vont se placer dans la bonne feuille (janvier, ou février etc...)

Dans le code de ton UserForm, rajoute 2 procédures
1/
Sub ImportDansForm()
End Sub

2/
Sub ExportDansFeuille()
End Sub

Dans la 1ere procédure tu mets ça, en l'adaptant bien sur
 Nom_du_Control.Value = Sheets("Temp").Range("A1")
 Nom_du_Control2.Value = Sheets("Temp").Range("A2")
 Nom_du_Control3.Value = Sheets("Temp").Range("A3")

Dans la 2eme procédure tu mets ça, en l'adaptant bien sur
 Sheets("Temp").Range("A1") = Nom_du_Control.Value
 Sheets("Temp").Range("A2") = Nom_du_Control2.Value
 Sheets("Temp").Range("A3") = Nom_du_Control3.Value

Et donc pour finir, dans
UserForm_Initialize()
   Call ImportDansForm
End Sub

et dans
UserForm_Terminate()
   Call ExportDansFeuille
End Sub

@++




  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 février 2008
7 juin 2006 à 10:45
Bonjour,
En fait j'ai un bouton enregistrer et un bouton fermer. les deux me servent à enregistrer les données. elles vont se ranger dans une feuille excel sur la ligne correspondant au mois et à l'année selectionnée et sur la colonne choisie dans le code. quand j'enregistre elles apparaissent directement dans ma base. Mais si je ferme excel la fois d'après quand je relance ma userform elles disparaissent ( elles disparaissent au moment du chargement de ma userform pour moi c'est de la que vient le problème)
Je vais ecrire ton code pour voir si ca resout le problème.
Merci beaucoup
Jamelie
0
jamelie Messages postés 57 Date d'inscription mercredi 26 avril 2006 Statut Membre Dernière intervention 27 février 2008
7 juin 2006 à 16:13
re-bonjour,
 
Ca fonctionne pas ca me met pareil que d'habitude mes données disparaissent dès que je rentre dans ma userform (si j'ai fermé excel entre temps). Pour fermer ma form j'utilise userform.hide est ce que c'est ca qui est la cause du problème? Sinon le code que tu m'as donné il ressemble au code que j'i mis pour que mes données aillent dans ma base de données à part que j'ai ecrit 
.Cells(daterow, numerocolonne) = REC1.Text
à chaque fois pour chaque controle.


Je ne sais plus quoi faire.


Merci d'avoir essayé.


Jamelie
0
Rejoignez-nous