erreur 1004
#1
Débutant XLPages

Inscription: 26/02/2010

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 26-02-2010 15h05

Bonjour,

Lorsque j'essaie d'appliquer la mise en forme par recopie d'une formule en colonne C de la feuille Jean-BaptisteGaillard, j'ai une exception erreur 1004. Le script bloque à la première instruction suivante (en jaune) :

'Traitement de la plage Cible
    If Not Tplage Is Nothing Then
        With ActiveWorkbook.Styles("Normal")
            .IncludeNumber = False

Je ne comprends pas pourquoi et suis incapable de corriger. La seule modification apportée par rapport à la version qui jusqu'ici fonctionnait bien, est l'introduction d'un module avec les deux procédures suivantes (mises au point par Boisgontier Jacques).

Function SansDoublonsTrié(champ As Range)
  Set mondico = CreateObject("Scripting.Dictionary")
  temp = champ
  For i = LBound(temp, 1) To UBound(temp, 1)
    For j = LBound(temp, 2) To UBound(temp, 2)
      If Not mondico.Exists(temp(i, j)) And temp(i, j) <> "" Then mondico.Add temp(i, j), temp(i, j)
    Next j
  Next i
  Dim b()
  ReDim b(1 To champ.Count)
  i = 1
  For Each C In mondico.items
    b(i) = C
    i = i + 1
  Next
  Call tri(b, 1, mondico.Count)
  SansDoublonsTrié = Application.Transpose(b)
End Function

Sub tri(a, gauc, droi)          ' Quick sort
 ref = a((gauc + droi) \ 2)
 g = gauc: d = droi
 Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
       temp = a(g): a(g) = a(d): a(d) = temp
       g = g + 1: d = d - 1
     End If
 Loop While g <= d
 If g < droi Then Call tri(a, g, droi)
 If gauc < d Then Call tri(a, gauc, d)
End Sub

Pourriez-vous m'aider ?

Cordialement.

Pierre



Hors Ligne
Rapport   Haut 

Re: erreur 1004
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 27-02-2010 00h09
Bonsoir bakman, bienvenue sur XLpages.com
Bonsoir le Forum,

A vrai dire, je ne crois pas que ce soit les 2 procédures que tu présentes ici qui causent problème.
Non, la situation que tu exposes me fait plutôt penser aux cas rencontrés dans CE FIL ou bien dans CELUI-CI.

Cela dit, sans un extrait de ton fichier, c'est toujours très difficile de dire ce qui cloche... (pour joindre un fichier dans le forum, voir cette FAQ)

Cordialement,


Nb : merci d'utiliser le bouton prévu dans l'éditeur de post pour l'insertion du Code VBA :




Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: erreur 1004
#3
Débutant XLPages

Inscription: 26/02/2010

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 04-03-2010 17h37

Merci de ta réponse,

Effectivement je n'avais pas les bons paramètres pour joindre mon fichier. Ce que je vais faire immédiatement.

J'utilise le plan pour contracter ma feuille qui est assez imposante mais avant que je n'introduise les macros présentes dans mon premier message tout se passait plutôt bien.

Merci de ton oeil avisé.

Cdlt.

Pierre.



Pièce jointe:
zip JBG.zip   [ Taille: 61.70 Ko - Téléchargements: 345 ]
Hors Ligne
Rapport   Haut 

Re: erreur 1004
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 04-03-2010 22h28
Bonsoir bakman, le Forum,

Je viens donc de regarder ton classeur.

Je te confirme que les procédures ajoutées ne sont pour rien dans le plantage que tu rencontres, l'erreur 1004 est causée tout simplement par la protection de feuille que tu as appliquée sur la feuille "Recap TRACT". Enlève cette protection de feuille et tout devrait rentrer dans l'ordre.

La mDF MFCmultiples exploite la propriété Styles des feuilles de calcul Excel, mais cette propriété ne supporte malheureusement pas le verrouillage des feuilles de calcul
Au besoin, en faisant quelques recherches sur les forums du présent site, tu trouveras peut-être quelques solutions plus ou moins efficaces pour contourner cet effet pervers de la protection de feuille avec la MFCmultiples. Mais, je préfère t'avertir que cette macro reste, par nature, incompatible avec le verrouillage de protection.

J'ajoute que dans l'article dédié à cette macro, je fais la mise en garde suivante : "L'abus de formules traitées par cette MFC spéciale risque fort d'être source de lenteur pour votre projet."
Dans ton classeur, l'utilisation de la mDF MFCmultiples semble raisonnable... Mais couplée, avec un abus de formules SOMMEPROD() et de Function() VBA personnalisées récursives comme celles que tu as rajoutées en Module1, je crains fort que tu te rapproches d'un document fort consommateur en ressources calcul...

J'ajoute qu'en observant ton classeur, je me suis aperçu que tu avais appliqué - à tort - une MFC de type =mDF() sur les 3 colonnes D, E et F de l'onglet "Jean-BaptisteGaillard". Le faire ici sur 3 colonnes est inutile : tu devrais déjà optimiser ton document en appliquant cette MFC particulière sur la seule colonne D. L'effet sera toujours le même sur toute la ligne et tu économiseras déjà des ressources calcul.

Bien cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes