eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008
-
25 juin 2008 à 16:59
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008
-
25 juin 2008 à 17:51
Bonjour, je vais tenter de vous expliquer mon problème mais étant donné que je ne sais pas d'où il vient bref,
Alors j'ai un userform UTIL avec une liste déroulante qui recupére les données de la colonne A de la feuille "Abonnements", puis j'ai une textbox.
Quand on clique sur OK, l'activité choisi est copié dans la case B2 de la feuille "Calculs" et le reste de la ligne (prix lié à l'activité) est copié dans le feuille "calculs" mais de la case B4 à F4.
Mon problème est que quand je démarre je programme je lance le userform UTIL (on considère que des activités et des prix sont pésents dans la feuille "Abonnements"), je choisis une activité puis je tape une fréquence dans la txtbox je clique sur OK, toutes les valeurs ont bien éte collé correctement, il m'apparai le userform Reponse avec ma reponse jusqu'à là tout va bien.
Mais quand je réitérre cette procédure c'est à dire que je rechoisi une activité (sans redemarrer le programme), l'activité que j'avais choisis précédemment n'est plus là (ligne blanche), je choisi donc une autre activité et une autre fréquence ej reclique sur OK et LA problème, il me colle des valeurs de la feuille "calculs" et non celles de "Abonnements".
Mon code est celui là:
Private Sub UserForm_Initialize()
Dim i As Integer, DerniereLigne As Integer
Dim Ws As Worksheet
Set Ws = Sheets("Abonnements")
DerniereLigne = Ws.Range("A65536").End(xlUp).Row + 1
For i = 2 To DerniereLigne
If Range("A" & i).Value <> vbNullString Then
type_dact.AddItem Sheets("Abonnements").Range("A" & i).Value
End If
Next i
End Sub
et celui là :
Private Sub OK_Click()
Dim Recherche As Range
Set Recherche = Sheets("Abonnements").Cells.Find(type_dact.Text, LookIn:=xlValues, LookAt:=xlWhole)
If type_dact = "" Then
erreur = MsgBox("Le choix d'une activité est obligatoire", vbOKOnly + vbCritical, "OUPS")
Exit Sub
ElseIf Not Recherche Is Nothing Then
Sheets("calculs").Range("B2").Value = Range("A" & Recherche.Row).Value
Sheets("calculs").Range("B4:F4").Value = Range("B" & Recherche.Row & ":F" & Recherche.Row).Value
End If
Unload UTIL
Reponse.Show
End Sub
Voilà j'espère avoir bien expliqué mon problème, je suis sous excel 2003.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 25 juin 2008 à 17:16
Rebonjour
Ta liste déroulante (type_dact je suppose) appartient à ta userform UTIL (je suppose aussi)
Puisque tu fais un Unload UTIL à la fin de OK_Click, tous les composants et leut contenu disparait, c'est normal.
Eventuellement, au lieu de la décharger, masque là, essaye
UTIL.Hide
Les données resteront présentes et lors d'un prochain appel, fais un UTIL.Show
Si ce ne sont pas les données de la bonne feuille qui sont utilisées, c'est que la feuille par défaut n'est pas bonne.
Revérifie que, à chaque fois, tu spécifies bien le nom de la feuille dans tes sélections.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008 25 juin 2008 à 17:51
Oui je me suis dis que j'avais oublié de spécifié sur quelle feuille il fallait prendre les valeurs mais je ne trouve pas.
J'ai mis les 2codes qui étaient suceptibles de contenir une erreur. Je ne l'ai toujours pas trouvée.