[cloturer]erreur 1007

Keran

XLDnaute Junior
Bonjour voila j'ai une vba que j'aimerais executer mais elle me dit erreur 1007 je ne trouve pas pourquoi :/
VB:
Sub Macro7()
'
' Macro7 Macro
'

'
    ActiveWorkbook.Worksheets("BAout").Names("nuitmoismoindim").RefersToR1C1 = _
        "=IF(AND(HJuillet!$AF$7=31,AND(LEFT(HJuillet!$AF9,5)>""19:00"",RIGHT(HJuillet!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HJuillet!$AF9,1)),ISNUMBER(VLOOKUP(HJuillet!$AF$2,DimFe,1,FALSE))),TEXT(HJuillet!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HJuillet!$AE$2=30,HJuillet!$AF$7=""""),AND(LEFT(HJuillet!$AE9,5)>""19:00"",RIGHT(HJuillet!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HJuillet" & _
        "!$AE9,1)),ISNUMBER(VLOOKUP(HJuillet!$AE$2,DimFe,1,FALSE))),TEXT(HJuillet!$AE$2,""jj/mm/aa"")&"" - "","""")"""
       
    ActiveWorkbook.Worksheets("BAout").Names("nuitmoismoins").RefersToR1C1 = _
        "=IF(AND(HJuillet!$AF$7=31,AND(LEFT(HJuillet!$AF9,5)>""19:00"",RIGHT(HJuillet!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HJuillet!$AF9,1)),ISNUMBER(VLOOKUP(HJuillet!$AF$2,DimFe,1,FALSE))),TEXT(HJuillet!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HJuillet!$AE$2=30,HJuillet!$AF$7=""""),AND(LEFT(HJuillet!$AE9,5)>""19:00"",RIGHT(HJuillet!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HJuillet" & _
        "et!$AE9,1)),ISNUMBER(VLOOKUP(HJuillet!$AE$2,DimFe,1,FALSE))),TEXT(HJuillet!$AE$2,""jj/mm/aa"")&"" - "","""")"""
    '
    ActiveWorkbook.Worksheets("BAvril").Names("nuitmoismoindim").RefersToR1C1 = _
        "=IF(AND(HMars!$AF$7=31,AND(LEFT(HMars!$AF9,5)>""19:00"",RIGHT(HMars!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HMars!$AF9,1)),ISNUMBER(VLOOKUP(HMars!$AF$2,DimFe,1,FALSE))),TEXT(HMars!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HMars!$AE$2=30,HMars!$AF$7=""""),AND(LEFT(HMars!$AE9,5)>""19:00"",RIGHT(HMars!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HMars" & _
        "!$AE9,1)),ISNUMBER(VLOOKUP(HMars!$AE$2,DimFe,1,FALSE))),TEXT(HMars!$AE$2,""jj/mm/aa"")&"" - "","""")"""
    ActiveWorkbook.Worksheets("BAvril").Names("nuitmoismoins").RefersToR1C1 = _
        "=IF(AND(HMars!$AF$7=31,AND(LEFT(HMars!$AF9,5)>""19:00"",RIGHT(HMars!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HMars!$AF9,1)),ISNUMBER(VLOOKUP(HMars!$AF$2,DimFe,1,FALSE))),TEXT(HMars!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HMars!$AE$2=30,HMars!$AF$7=""""),AND(LEFT(HMars!$AE9,5)>""19:00"",RIGHT(HMars!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HMars" & _
        "et!$AE9,1)),ISNUMBER(VLOOKUP(HMars!$AE$2,DimFe,1,FALSE))),TEXT(HMars!$AE$2,""jj/mm/aa"")&"" - "","""")"""
    '"
    ActiveWorkbook.Worksheets("BDecembre").Names("nuitmoismoindim").RefersToR1C1 = _
        "=IF(AND(HNovembre!$AF$7=31,AND(LEFT(HNovembre!$AF9,5)>""19:00"",RIGHT(HNovembre!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HNovembre!$AF9,1)),ISNUMBER(VLOOKUP(HNovembre!$AF$2,DimFe,1,FALSE))),TEXT(HNovembre!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HNovembre!$AE$2=30,HNovembre!$AF$7=""""),AND(LEFT(HNovembre!$AE9,5)>""19:00"",RIGHT(HNovembre!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HNovembre" & _
        "!$AE9,1)),ISNUMBER(VLOOKUP(HNovembre!$AE$2,DimFe,1,FALSE))),TEXT(HNovembre!$AE$2,""jj/mm/aa"")&"" - "","""")"
    ActiveWorkbook.Worksheets("BDecembre").Names("nuitmoismoins").RefersToR1C1 = _
        "=IF(AND(HNovembre!$AF$7=31,AND(LEFT(HNovembre!$AF9,5)>""19:00"",RIGHT(HNovembre!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HNovembre!$AF9,1)),ISNUMBER(VLOOKUP(HNovembre!$AF$2,DimFe,1,FALSE))),TEXT(HNovembre!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HNovembre!$AE$2=30,HNovembre!$AF$7=""""),AND(LEFT(HNovembre!$AE9,5)>""19:00"",RIGHT(HNovembre!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HNovembre" & _
        "et!$AE9,1)),ISNUMBER(VLOOKUP(HNovembre!$AE$2,DimFe,1,FALSE))),TEXT(HNovembre!$AE$2,""jj/mm/aa"")&"" - "","""")"
    '
    ActiveWorkbook.Worksheets("BJuillet").Names("nuitmoismoindim").RefersToR1C1 = _
        "=IF(AND(HJuin!$AF$7=31,AND(LEFT(HJuin!$AF9,5)>""19:00"",RIGHT(HJuin!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HJuin!$AF9,1)),ISNUMBER(VLOOKUP(HJuin!$AF$2,DimFe,1,FALSE))),TEXT(HJuin!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HJuin!$AE$2=30,HJuin!$AF$7=""""),AND(LEFT(HJuin!$AE9,5)>""19:00"",RIGHT(HJuin!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HJuin" & _
        "!$AE9,1)),ISNUMBER(VLOOKUP(HJuin!$AE$2,DimFe,1,FALSE))),TEXT(HJuin!$AE$2,""jj/mm/aa"")&"" - "","""")" & _
        ""
    ActiveWorkbook.Worksheets("BJuillet").Names("nuitmoismoins").RefersToR1C1 = _
        "=IF(AND(HJuin!$AF$7=31,AND(LEFT(HJuin!$AF9,5)>""19:00"",RIGHT(HJuin!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HJuin!$AF9,1)),ISNUMBER(VLOOKUP(HJuin!$AF$2,DimFe,1,FALSE))),TEXT(HJuin!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HJuin!$AE$2=30,HJuin!$AF$7=""""),AND(LEFT(HJuin!$AE9,5)>""19:00"",RIGHT(HJuin!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HJuin" & _
        "et!$AE9,1)),ISNUMBER(VLOOKUP(HJuin!$AE$2,DimFe,1,FALSE))),TEXT(HJuin!$AE$2,""jj/mm/aa"")&"" - "","""")" & _
        ""
    '
    ActiveWorkbook.Worksheets("BJuin").Names("nuitmoismoindim").RefersToR1C1 = _
        "=IF(AND(HMai!$AF$7=31,AND(LEFT(HMai!$AF9,5)>""19:00"",RIGHT(HMai!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HMai!$AF9,1)),ISNUMBER(VLOOKUP(HMai!$AF$2,DimFe,1,FALSE))),TEXT(HMai!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HMai!$AE$2=30,HMai!$AF$7=""""),AND(LEFT(HMai!$AE9,5)>""19:00"",RIGHT(HMai!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HMai" & _
        "!$AE9,1)),ISNUMBER(VLOOKUP(HMai!$AE$2,DimFe,1,FALSE))),TEXT(HMai!$AE$2,""jj/mm/aa"")&"" - "","""")" & _
        ""
    ActiveWorkbook.Worksheets("BJuin").Names("nuitmoismoins").RefersToR1C1 = _
        "=IF(AND(HMai!$AF$7=31,AND(LEFT(HMai!$AF9,5)>""19:00"",RIGHT(HMai!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HMai!$AF9,1)),ISNUMBER(VLOOKUP(HMai!$AF$2,DimFe,1,FALSE))),TEXT(HMai!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HMai!$AE$2=30,HMai!$AF$7=""""),AND(LEFT(HMai!$AE9,5)>""19:00"",RIGHT(HMai!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HMai" & _
        "et!$AE9,1)),ISNUMBER(VLOOKUP(HMai!$AE$2,DimFe,1,FALSE))),TEXT(HMai!$AE$2,""jj/mm/aa"")&"" - "","""")" & _
        ""
    '
     ActiveWorkbook.Worksheets("BMai").Names("nuitmoismoindim").RefersToR1C1 = _
        "=IF(AND(HAvril!$AF$7=31,AND(LEFT(HAvril!$AF9,5)>""19:00"",RIGHT(HAvril!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HAvril!$AF9,1)),ISNUMBER(VLOOKUP(HAvril!$AF$2,DimFe,1,FALSE))),TEXT(HAvril!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HAvril!$AE$2=30,HAvril!$AF$7=""""),AND(LEFT(HAvril!$AE9,5)>""19:00"",RIGHT(HAvril!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HAvril" & _
        "!$AE9,1)),ISNUMBER(VLOOKUP(HAvril!$AE$2,DimFe,1,FALSE))),TEXT(HAvril!$AE$2,""jj/mm/aa"")&"" - "","""")" & _
        ""
    ActiveWorkbook.Worksheets("BMai").Names("nuitmoismoins").RefersToR1C1 = _
        "=IF(AND(HAvril!$AF$7=31,AND(LEFT(HAvril!$AF9,5)>""19:00"",RIGHT(HAvril!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HAvril!$AF9,1)),ISNUMBER(VLOOKUP(HAvril!$AF$2,DimFe,1,FALSE))),TEXT(HAvril!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HAvril!$AE$2=30,HAvril!$AF$7=""""),AND(LEFT(HAvril!$AE9,5)>""19:00"",RIGHT(HAvril!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HAvril" & _
        "et!$AE9,1)),ISNUMBER(VLOOKUP(HAvril!$AE$2,DimFe,1,FALSE))),TEXT(HAvril!$AE$2,""jj/mm/aa"")&"" - "","""")" & _
        ""
    '
     ActiveWorkbook.Worksheets("BMars").Names("nuitmoismoindim").RefersToR1C1 = _
        "=IF(AND(HFevrier!$AF$7=31,AND(LEFT(HFevrier!$AF9,5)>""19:00"",RIGHT(HFevrier!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HFevrier!$AF9,1)),ISNUMBER(VLOOKUP(HFevrier!$AF$2,DimFe,1,FALSE))),TEXT(HFevrier!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HFevrier!$AE$2=30,HFevrier!$AF$7=""""),AND(LEFT(HFevrier!$AE9,5)>""19:00"",RIGHT(HFevrier!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HFevrier" & _
        "!$AE9,1)),ISNUMBER(VLOOKUP(HFevrier!$AE$2,DimFe,1,FALSE))),TEXT(HFevrier!$AE$2,""jj/mm/aa"")&"" - "","""")" & _
        ""
    ActiveWorkbook.Worksheets("BMars").Names("nuitmoismoins").RefersToR1C1 = _
        "=IF(AND(HFevrier!$AF$7=31,AND(LEFT(HFevrier!$AF9,5)>""19:00"",RIGHT(HFevrier!$AF9,5)<""8:00""),ISNUMBER(1*LEFT(HFevrier!$AF9,1)),ISNUMBER(VLOOKUP(HFevrier!$AF$2,DimFe,1,FALSE))),TEXT(HFevrier!$AF$2,""jj/mm/aa"")&"" - "","""")& IF(AND(AND(HFevrier!$AE$2=30,HFevrier!$AF$7=""""),AND(LEFT(HFevrier!$AE9,5)>""19:00"",RIGHT(HFevrier!$AE9,5)<""8:00""),ISNUMBER(1*LEFT(HFevrier" & _
        "et!$AE9,1)),ISNUMBER(VLOOKUP(HFevrier!$AE$2,DimFe,1,FALSE))),TEXT(HFevrier!$AE$2,""jj/mm/aa"")&"" - "","""")" & _
        ""
    '


End Sub


merci d'avance
 

job75

XLDnaute Barbatruc
Bonjour le forum,

Je pense qu'en l'état il n'est pas possible de s'en sortir.

En effet les formules ont été découpées en morceaux concaténés (c'est normal).

Mais les coupures n'ont pas été faites correctement, des parties de textes manquent.

Par exemple pour la 1ère formule, nom "durée10" :

- la 1ère ligne se termine par IFERROR(RIGHT(HAout!$AF9" & _

- la 2ème ligne commence par """07:00"") alors qu'elle devrait commencer par ",5),0)

De plus il y a cette fonction _xlfn.ISFORMULA inconnue au bataillon.

Tout ça parce que le code provient de l'enregistreur de macro qui pédale souvent dans la choucroute.

Bonne journée.
 

Staple1600

XLDnaute Barbatruc
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

[aparté]
Le nombre de questions redondantes postées ici montrent bien que la recherche (où qu'elle se fasse) n'est pas le premier réflexe.
[/aparté]

Sinon on est d'accord ESTFORMULE n'est pas dispo sur XL2010 ?
(je n'ai plus cette version à disposition)
 

Keran

XLDnaute Junior
bonjour desoler du temps de reponse je travailler ce week end ^^" merci des reponses. j'ai fini par opter par l'option copier coller mais je vais regarder tous vos conseil pour en apprendre un peu plus merci a tous et bonne semaine
 

job75

XLDnaute Barbatruc
Bonjour Keran, le forum,

De fait les formules de votre macro existent dans des noms définis dans des feuilles.

Je comprends que vous voulez sauvegarder ces formules.

Mais le faire "en dur" dans VBA n'est pas une bonne solution comme on le voit.

Il est par contre facile de les sauvegarder dans une feuille de calcul.

Dans le fichier joint voyez la feuille "Sauvegarde" et ces macros (clic droit sur l'onglet et Visualiser le code) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Application.Undo 'sécurité, annule toute modification manuelle
Application.EnableEvents = True
End Sub

Sub Sauvegarde()
Dim t, lig&, nom As Name, s
t = Timer
Application.Goto [A1], True 'cadrage à cause des références relatives
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Columns(2).NumberFormat = "@" 'colonne B au format Texte
Range("A2:B" & Rows.Count).ClearContents 'RAZ
lig = 1
For Each nom In ThisWorkbook.Names
    s = Split(nom.Name, "!")
    If nom.Visible And UBound(s) > 0 Then 'nom visible défini dans une feuille
        lig = lig + 1
        Cells(lig, 1) = nom.Name
        Cells(lig, 2) = nom.RefersTo
    End If
Next
With UsedRange: End With 'ajuste la barre de défilement verticale
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "Durée de la sauvegarde " & Format(Timer - t, "0.0") & " secondes"
End Sub

Sub Restitution()
Dim t, lig&, s
t = Timer
Application.Goto [A1], True 'cadrage à cause des références relatives
If [A2] = "" Then MsgBox "Sauvegarder d'abord...": Exit Sub 'sécurité, si la feuille est vide
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
On Error Resume Next 'si des feuilles ont été supprimées entre-temps
With [A1].CurrentRegion
    For lig = 2 To .Rows.Count
        s = Split(.Cells(lig, 1), "!")
        If IsError(Sheets(s(0))) Then GoTo 1 'si la feuille n'existe pas
        Sheets(s(0)).Names.Add s(1), .Cells(lig, 2).Value
        .Cells(lig, 1) = "" 'effacement du nom traité
1    Next
    .Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'les lignes non traitées sont seules conservées
End With
With UsedRange: End With 'ajuste la barre de défilement verticale
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "Durée de la restitution " & Format(Timer - t, "0.0") & " secondes"
End Sub
Cliquer sur le 1er bouton pour sauvegarder les formules, le 2ème bouton permet de les restituer.

La restitution prend pas mal de temps, près de 2 minutes chez moi.

A+
 

Pièces jointes

  • Planning(1).xlsm
    2.4 MB · Affichages: 14
Dernière édition:

job75

XLDnaute Barbatruc
Re,

Dans le fichier (1) précédent :

- clic sur le bouton Sauvegarde => 677 noms listés dont 22 "Print_Area" (zones d'impression)

- clic sur Restitution puis de nouveau sur Sauvegarde => 699 noms listés dont 44 "Print_Area".

Les "Print_Area" sont donc dupliquées, pour éviter cela il suffit de ce test pour ne pas les traiter :
Code:
If s(1) <> "Print_Area" Then 'pour éviter les zones d'impression
Fichier (2).

A+
 

Pièces jointes

  • Planning(2).xlsm
    2.4 MB · Affichages: 11

job75

XLDnaute Barbatruc
Bonjour Keran, le forum,

Dans ce fichier (3) j'ai ajouté une feuille pour sauvegarder les noms définis dans le classeur.

Attention, il ne faut pas utiliser la commande "Déplacer ou copier" mais insérer une feuille vierge.

Bonne journée.
 

Pièces jointes

  • Planning(3).xlsm
    2.4 MB · Affichages: 14

job75

XLDnaute Barbatruc
Re,

Mais pour quelles raisons Keran voulez-vous sauvegarder les noms définis ?

Si c'est pour éviter qu'on les supprime vous pouvez les masquer par cette macro très simple (dans Module1):
Code:
Sub MasquerNoms()
Dim nom As Name
For Each nom In ThisWorkbook.Names
    If Not nom.Name Like "*!Print_Area" Then nom.Visible = False 'sauf zones d'impression
Next
End Sub
Une fois exécutée supprimez le code.

Il faudra s'y connaître un peu pour songer à afficher les noms en créant une macro.

Fichier (4).

A+
 

Pièces jointes

  • Planning(4).xlsm
    2.4 MB · Affichages: 13

Keran

XLDnaute Junior
deja merci enormement pour le temps et l'effort

c'est tres interessant je le garde de coter pour mes prochaine fois comme j'ai fini par ceder pour le copier coller manuel j'ai reussi a atteindre mon but mais franchement merci je vais juste perdre des neuronnes pour tous comprendre xD


sur ce bonne journée :)
 

Keran

XLDnaute Junior
j'avais opter pour cette option a la base pour eviter que des formules sois supprimer ou modifier , le fichier etant confier a des agents qui ne mettrise pas vraiment la bureautique mais ou j'avais l'oblication de laisser accessible les cellules (j'en est verrouiller une partit mais j'ai aussi donner le mot de passe ) enfin voila je n'arrive pas expliquer clairement ma vision et je pense que c'est aussi pour sa que je suis partie sur des bases pas forcement les plus adapter
je sais pas quoi d'autre repondre ^^"
 

Statistiques des forums

Discussions
312 321
Messages
2 087 253
Membres
103 498
dernier inscrit
FAHDE