Appel d'une procédure dans une autre?

atlonia

XLDnaute Occasionnel
RE bonsoir à tous,

Je voudrais appeler l'exécution de la procédure "Majheures" du module1 par la procédure "Private" en feuille1.

Bien sûre je voudrais qu'elle intervienne au changement de semaine dans la cellule A5 et avant la remise à zéro des plages horaires.

Quelqu'un connait-il la marche a suivre?

Merci de votre aide.

Ci joint mon classeur.
 

Pièces jointes

  • horaires05v04b(recup semaines)effaceR7aR41.zip
    21.1 KB · Affichages: 27
  • horaires05v04b(recup semaines)effaceR7aR41.zip
    21.1 KB · Affichages: 24
  • horaires05v04b(recup semaines)effaceR7aR41.zip
    21.1 KB · Affichages: 23

kjin

XLDnaute Barbatruc
Re : Appel d'une procédure dans une autre?

Je voudrais appeler l'exécution de la procédure "Majheures" du module1 par la procédure "Private" en feuille1.
Bien sûre je voudrais qu'elle intervienne au changement de semaine dans la cellule A5 et avant la remise à zéro des plages horaires.

Bonsoir,
Je ne comprends pas bien la question, dans la mesure ou tu fais fait déjà appel à cette procédure dans la macro événementielle; maintenant, que ça ne fonctionne pas, c'est autre chose.

With Range("A4:O42")
.Copy
Set NF = Worksheets.Add
NF.Range("A1").PasteSpecial xlPasteAll
NF.Name = "SEM " & Me.Range("A5") - 1
Call Module1.majheures
End With


Mais là, il se fait tard...
A+
kjin
 

atlonia

XLDnaute Occasionnel
Re : Appel d'une procédure dans une autre?

Cette procédure crée une nouvelle feuille et y copie l'ensemble de la feuille 1, celle qui est dans le module1 ne copie que les valeur de la colonne R7 dans le récapitulatif heures sup de la feuille 3.

Pour ce soir, je vais faire comme Kjin.

Je reviendrai aux nouvelles demain soir!

Bonne nuit à tous
 
Dernière édition:

atlonia

XLDnaute Occasionnel
Re : Appel d'une procédure dans une autre?

Bonsoir à tous,

Je retente ma chance ce soir...!

Quelqu'un a-t-il une petite idée pour m'aider à résoudre mon problème?

Merci du temps que vous voudrez bien m'accorder!
 

skoobi

XLDnaute Barbatruc
Re : Appel d'une procédure dans une autre?

Bonjour atlonia kjin,

Code:
Cette procédure crée une nouvelle feuille et y copie l'ensemble de la feuille 1, celle qui est dans le module1 ne copie que les valeur de la colonne R7 dans le récapitulatif heures sup de la feuille 3.

Je confirme, la procédure ne copie que les valeur de la colonne R7 dans le récapitulatif heures sup de la feuille 3.
Donc ton problème n'est pas un problème d'appel de macro comme le faisait remarqué également kjin.

Ce serait bien que tu expliques un peu plus en détail ce qui doit être fait et à quel moment.
Ca nous évitera 1/2h? de recherche.....
 

atlonia

XLDnaute Occasionnel
Re : Appel d'une procédure dans une autre?

Bonsoir et merci de m'ouvrir les yeux Skoobi,

Pardon Kjin, J'avais effectivement mal lu la procédure...!

Donc en fait mon problème est tout autre, puisque la procédure ne s'exécute pas!

Pour retrouver la majoration des heures sup en feuille 3, je suis obligé de la lancer par Outils>Macros.

Je ne sis pas pourquoi!

Avez-vous une idée?

Merci de votre indulgence envers un débutant qui bafouille encore beaucoup.
 

kjin

XLDnaute Barbatruc
Re : Appel d'une procédure dans une autre?

Bonsoir,
Déplaces juste ta ligne comme ici
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim NF As Worksheet, Feuille As Worksheet
If Not Intersect(Target, Range("a5")) Is Nothing Then
For Each Feuille In ThisWorkbook.Worksheets
If Target.Value = Val(Right(Feuille.Name, 2)) Then
If MsgBox("Feuille déjà existante, Afficher la feuille", vbInformation + vbYesNo, "Erreur:") = vbYes Then
Feuille.Activate
Exit Sub
Else
Exit Sub
End If
End If
Next
Majheures
With Range("A4:O42")
.Copy
Set NF = Worksheets.Add
NF.Range("A1").PasteSpecial xlPasteAll
NF.Name = "SEM " & Me.Range("A5") - 1
End With
Range("B7:O42").ClearContents
End If
Me.Activate
Application.ScreenUpdating = True
End Sub


Ca devrait fonctionner
A+
kjin
 

atlonia

XLDnaute Occasionnel
Re : Appel d'une procédure dans une autre?

Merci beaucoup Kjin,

C'est maintenant fonctionnel, mais peut-tu m'expliquer pourquoi cela fonctionne à cet endroit de la procédure et pourquoi pas à celui ou je l'avais mis

Merci encore.
 

kjin

XLDnaute Barbatruc
Re : Appel d'une procédure dans une autre?

Re,
Ravi que ton soucis soit résolu.
Pour la question, l'instruction with ne peut s'appliquer qu'à un seul objet d'une part et d'autre part la macro devait être appelée avant la création de la nouvelle feuille par with/end with et pas plus en début de code parce que tu aurais incrémenté ton nb d'heures avant de vérifier que la feuille n'éxiste pas.
A+
kjin
 

kjin

XLDnaute Barbatruc
Re : Appel d'une procédure dans une autre?

Re,
Juste 2 petites reflexions.
1) Concernant le message précédent, pour changer d'objet on peut mettre:
With Range("A4:O42")
.Copy
Set NF = Worksheets.Add
NF.Range("A1").PasteSpecial xlPasteAll
NF.Name = "SEM " & Me.Range("A5") - 1
Me.Activate
majheures
End With

Pour que ça fonctionne aussi

2) il me semble que les heures ne sont pas reportées dans la bonne colonne
soit changer la ligne :
If j > 0 Then Sheets("Feuil3").Cells(j, Val(.Range("A5").Value) + 1) = .Range("R" & i)
dans le code de la macro majheures
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
312 331
Messages
2 087 360
Membres
103 529
dernier inscrit
moket07