OVH Cloud OVH Cloud

macro qui ne fonctionne qu'en pas à pas

9 réponses
Avatar
magic-dd
salut les as

j'ai pass=E9 tout mon dimanche =E0 comprendre pourquoi ma macro
fonctionne parfaitement en pas =E0 pas avec F8 et en mode normal ca
merdouille

je vous mets le fichier pour voir par vous meme

merci de votre aide

http://cjoint.com/?kbvfoh312C

9 réponses

Avatar
lSteph
bonsoir,
laquelle?

"magic-dd" a écrit dans le message de news:

salut les as

j'ai passé tout mon dimanche à comprendre pourquoi ma macro
fonctionne parfaitement en pas à pas avec F8 et en mode normal ca
merdouille

je vous mets le fichier pour voir par vous meme

merci de votre aide

http://cjoint.com/?kbvfoh312C
Avatar
MichDenis
Essaie ceci :

'----------------------------
Sub feu()
Dim Ctrl As Control

Application.ScreenUpdating = True
For Each Ctrl In UsfOpeFix.Controls
If TypeName(Ctrl) = "CheckBox" Then
If Ctrl.Value = True Then
With ThisWorkbook
With .Sheets(Ctrl.ControlTipText)
.Range("B65536").End(xlUp).Offset(1, 0).Value = UsfOpeFix.Tdate.Value
.Range("B65536").End(xlUp).Offset(0, 1).Value = UsfOpeFix.Ttype.Value
.Range("B65536").End(xlUp).Offset(0, 2).Value = UsfOpeFix.Tops.Value
.Range("B65536").End(xlUp).Offset(0, 3).Value = UsfOpeFix.Tdeb.Value
.Range("B65536").End(xlUp).Offset(0, 4).Value = UsfOpeFix.Tcred.Value
fin = Application.CountA(Range("g:g")) + 1
.Range("G" & fin).Formula = "=$G$2-SUM(E$2:E" & fin & ")+SUM(F$2:F" & fin & ")"
End With
End With
Ctrl.Value = False 'On efface la sélection
End If
End If
Next Ctrl
End Sub
'----------------------------






"magic-dd" a écrit dans le message de news:

salut les as

j'ai passé tout mon dimanche à comprendre pourquoi ma macro
fonctionne parfaitement en pas à pas avec F8 et en mode normal ca
merdouille

je vous mets le fichier pour voir par vous meme

merci de votre aide

http://cjoint.com/?kbvfoh312C
Avatar
magic-dd
Merci michel mais cela ne foncionne que si on se place sur la 1ere
feuille


essaye de te mettre sur celle de septembre et ensuite de lancer
l'ouverture du userform

rempli tout

toutes les cases cochees
et envoi la macro

tu verras que sur les pages de octobre à decembre le calcul est decale

chose qu'en pas à pas n'arrive pas

voici le classeur

www.magic-dd.info/Classeur2.xls

merci
Avatar
MichDenis
Voir dans ta bal.



"magic-dd" a écrit dans le message de news:

Merci michel mais cela ne foncionne que si on se place sur la 1ere
feuille


essaye de te mettre sur celle de septembre et ensuite de lancer
l'ouverture du userform

rempli tout

toutes les cases cochees
et envoi la macro

tu verras que sur les pages de octobre à decembre le calcul est decale

chose qu'en pas à pas n'arrive pas

voici le classeur

www.magic-dd.info/Classeur2.xls

merci
Avatar
magic-dd
merci michel

cela ne marche tjrs pas chez moi

répose dans ta bal

merci encore
Avatar
MichDenis
Dans tes colonnes des derniers mois,

Tu as dans ta colonne G, un résidu de quelque chose dans une des cellules,
ta formule fin = Application.CountA(Range("g:g")) + 1
comptabilise une entrée de trop.

Assure-toi de sélectionner la totalité de la colonne G pour les mois problèmes,
et appuies sur Del , cela va régler ton problème !

Tu pourrais aussi utiliser la formule suivante :
Fin = .Range("G65536").End(xlUp)(2).Row




"magic-dd" a écrit dans le message de news:

merci michel

cela ne marche tjrs pas chez moi

répose dans ta bal

merci encore
Avatar
Mytå
Salut le Forum

Ta macro adaptée mgic-dd

Sub feu()

Dim Ctrl As Control
Dim fin As Integer
Dim Feuille As String

Application.ScreenUpdating = False
Feuille = ActiveSheet.Name

For Each Ctrl In UsfOpeFix.Controls
If TypeName(Ctrl) = "CheckBox" Then
If Ctrl.Value = True Then
With ThisWorkbook
With Sheets(Ctrl.ControlTipText)
.Activate
.Range("B65536").End(xlUp).Offset(1, 0).Value = UsfOpeFix.Tdate.Value
.Range("B65536").End(xlUp).Offset(0, 1).Value = UsfOpeFix.Ttype.Value
.Range("B65536").End(xlUp).Offset(0, 2).Value = UsfOpeFix.Tops.Value
.Range("B65536").End(xlUp).Offset(0, 3).Value = UsfOpeFix.Tdeb.Value
.Range("B65536").End(xlUp).Offset(0, 4).Value = UsfOpeFix.Tcred.Value
fin = Application.CountA(Range("g:g")) + 1
.Range("G" & fin).Formula = "=$G$3-SUM(E$2:E" & fin & ")+SUM(F$2:F" & fin &
")"
End With
End With
Ctrl.Value = False 'On efface la sélection
End If
End If
Next Ctrl

Sheets(Feuille).Activate
Application.ScreenUpdating = True

End Sub

Mytå
Avatar
MichDenis
A ) Il est préférable, souhaitable ... d'utiliser cette formule
Fin = .Range("G65536").End(xlUp)(2).Row
au lieu de :
fin = Application.CountA(Range("g:g")) + 1

B ) Application.ScreenUpdating = False
Application.ScreenUpdating = True

Ces 2 lignes de code sont totalement inutiles.
Tu fais comme tu veux, ce n'est qu'une suggestion !




"Mytå" a écrit dans le message de news:

Salut le Forum

Ta macro adaptée mgic-dd

Sub feu()

Dim Ctrl As Control
Dim fin As Integer
Dim Feuille As String

Application.ScreenUpdating = False
Feuille = ActiveSheet.Name

For Each Ctrl In UsfOpeFix.Controls
If TypeName(Ctrl) = "CheckBox" Then
If Ctrl.Value = True Then
With ThisWorkbook
With Sheets(Ctrl.ControlTipText)
.Activate
.Range("B65536").End(xlUp).Offset(1, 0).Value = UsfOpeFix.Tdate.Value
.Range("B65536").End(xlUp).Offset(0, 1).Value = UsfOpeFix.Ttype.Value
.Range("B65536").End(xlUp).Offset(0, 2).Value = UsfOpeFix.Tops.Value
.Range("B65536").End(xlUp).Offset(0, 3).Value = UsfOpeFix.Tdeb.Value
.Range("B65536").End(xlUp).Offset(0, 4).Value = UsfOpeFix.Tcred.Value
fin = Application.CountA(Range("g:g")) + 1
.Range("G" & fin).Formula = "=$G$3-SUM(E$2:E" & fin & ")+SUM(F$2:F" & fin &
")"
End With
End With
Ctrl.Value = False 'On efface la sélection
End If
End If
Next Ctrl

Sheets(Feuille).Activate
Application.ScreenUpdating = True

End Sub

Mytå
Avatar
magic-dd
salut


merci à tous les deux pour vos reponses.

cela marche parfaitement bien

j'avais pensé au .activate mais je savais pas ou le mettre

merci encore