Bug sur code bouton OK USF?

  • Initiateur de la discussion carlos
  • Date de début
C

carlos

Guest
Bonsoir

Lorsque j'execute une macro quelconque (qui fonctionne sans probleme particulier) à partir d'un bouton d'userform, rien ne se passe et de plus si je deplace sa fenetre elle se met en cascade .

Je pense que fe fais une erreur de code sur le bouton, voici :

Private Sub CommandButton1_Click()
rechDate ' macro
End Sub

Merci
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Salut

tu as bien une macro Rechdate ?? (faut bien vérifier que veux-tu !!)

Quand tu dis que rien ne se passe qu'entends tu par là ??

Si tu mets un point d'arret devant l'appel de ta macro tu verras si la macro se déclenche en appuyant sur la touche F8

Bonne soirée
 
C

carlos

Guest
salut
j'ai testé sur une macro toute simple, du genre effacer une colonne et y a pas de pb

Par contre sur un peu plus compliqué du genre :

Sub rechDate()

Dim debutRech, FinRech, dateAcoller As Date
Dim OccurenceSem, OccDebFinRech, premJJ, DecalJJ, Col, DansXsem, LMMJVS As Byte

Application.ScreenUpdating = False
effacer
debutRech = Range('a2')
FinRech = Range('b2')
Col = 0
LMMJVS = Cells(3, 10)
For Col = 0 To LMMJVS
OccDebFinRech = Cells(6, 5 + Col)
premJJ = Cells(5, 5 + Col)
DecalJJ = Cells(2, 5 + Col)
DansXsem = Cells(11, 5 + Col) * 7

OccurenceSem = 0
For OccurenceSem = 0 To OccDebFinRech

dateAcoller = debutRech + DansXsem + DecalJJ + OccurenceSem * 7 * premJJ
If dateAcoller >= debutRech And dateAcoller <= FinRech _
Then Range('c' & Range('c250').End(xlUp).Row + 1) = dateAcoller

Next OccurenceSem
Next Col
effacerDate
trierdate
End Sub

Ca se gate , Alors qu'elle fonctionne TRES TRES BIEN en cliquant sur un bouton normal ....
 
C

carlos

Guest
Par contre ,

Si je ferme le USF, la macro a ete correctement éxécutée....Le pb c'est que j'ai une serie de clique à faire sur cet USF avnt de le fermer .

Comment alors obliger excel à executer cette macro q'une fois la boite USF fermée ?

Merci de pencher vos neuronnes sur mon cas ..
 

Luki

XLDnaute Accro
Carlos le fil

Pour le pb de macro et du bouton 'ok' je ne mesuis pas penché sur le pb mais concernant la fenêtre qui se met en cascade, ça vient du Application.ScreenUpdating=false.

Il faut le basculer à true juste avant d' afficher le Uform et le repasser à false après.

Bon courage
 
C

carlos

Guest
SSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTOOOOOOOOOPPPPP

j'ai été chanceux grace à Luki .

C'etait un pb de application .screen etc ...............

Encore merci à ce forum et à tous les aides car g pas trouvé mieux sur cette belle terre .....

Carlos
 

Luki

XLDnaute Accro
Re bonjour Carlos, Jmps

La nuit porte conseil...

J'ai réalisé que je viens d'être confrronté au même genre de Pb dans l'élaboration d'un assistant qui appelle plusieurs Uform, + des choix et des vérifications en cours de procédure.

Pour éviter d'écrire un max de code associé aux évenements du uForm, ( ça devient vite ingérable), j'ai limité le code pour Bouton 'Ok' par ex à UserformN.Hide.Idem pour bouton annuler.

Ensuite c'est la macro qui l'a appelé qui va gèrer le retour Du Uform:

If UformN.activeControl=Bouton Ok then ( de mémoire)
unload.userformN ( si besoin)
ma macro
else
unload.userformN
exit sub
end if

Je trouve assez pratique de disposer du Uf jusqu'au moment o&ugrave; je n'en ai plus besoin ( par ex pour récuperer des infos d'un listbox)

D'autre part, les actions principales restent dans le corps de procédure principale et sont plus faciles à suivre que lorsque la macro passe d'un module à l'autre plusieurs fois.

Voilà, j'espère avoir été assez clair.
A+
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 724
Membres
110 552
dernier inscrit
jasson