je suis sur un casse-tête depuis 4 heures ....
Mon fichier excel "A" comprend un tcd qui attaque un autre fichier "B".
Après calcul et mise à jour du TCD, une macro se lance en auto pour reformatter des calculs complémentaires.
Si je fais un chgt d'une cellule sur la feuille de "A", tout se passe bien. Si je lance le recalcul du tcd c'est la cata
- le TCd se met à jour correctement
- la macro détecte bien le chgt et commence à s'exécuter
- arrivé à l'instruction range, on bascule au milieu (y= ..) d'une fonction placée dans un module du fichier "B"
- puis sortie brutale sans terminer la macro
Sans doute une erreur de débutant sur des déclarations ....
J'en perds mon latin !
macro :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig1
Application.EnableEvents = False
Sheets("Of ouverts").Select
derlig1 = Range("b65536").End(xlUp).Row
Range("e13:M900").Select
Selection.Clear
Range("e13:i13").Select
Selection.AutoFill Destination:=Range("e13:i" & derlig1)
ActiveSheet.PageSetup.PrintArea = "$A$1:$i" & derlig1
Range("A1").Select
Application.EnableEvents = True
End Sub
Fonction du fichier "B"
Function semaine_num(ddate)
Dim x, y
x = Int((ddate - 2) / 7) + 0.6
y = 52 + 5 / 28
x = Int(x - y * Int(x / y)) + 1
If Month(ddate) = 12 And x = 1 Then x = 53
semaine_num = x
End Function
Mon fichier excel "A" comprend un tcd qui attaque un autre fichier "B".
Après calcul et mise à jour du TCD, une macro se lance en auto pour reformatter des calculs complémentaires.
Si je fais un chgt d'une cellule sur la feuille de "A", tout se passe bien. Si je lance le recalcul du tcd c'est la cata
- le TCd se met à jour correctement
- la macro détecte bien le chgt et commence à s'exécuter
- arrivé à l'instruction range, on bascule au milieu (y= ..) d'une fonction placée dans un module du fichier "B"
- puis sortie brutale sans terminer la macro
Sans doute une erreur de débutant sur des déclarations ....
J'en perds mon latin !
macro :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig1
Application.EnableEvents = False
Sheets("Of ouverts").Select
derlig1 = Range("b65536").End(xlUp).Row
Range("e13:M900").Select
Selection.Clear
Range("e13:i13").Select
Selection.AutoFill Destination:=Range("e13:i" & derlig1)
ActiveSheet.PageSetup.PrintArea = "$A$1:$i" & derlig1
Range("A1").Select
Application.EnableEvents = True
End Sub
Fonction du fichier "B"
Function semaine_num(ddate)
Dim x, y
x = Int((ddate - 2) / 7) + 0.6
y = 52 + 5 / 28
x = Int(x - y * Int(x / y)) + 1
If Month(ddate) = 12 And x = 1 Then x = 53
semaine_num = x
End Function