XL 2016 Relance de la discussion Trier 2 feuilles ou classeur

Bearn 64

XLDnaute Occasionnel
Bonjour Dranreb,

Depuis 1 mois ce message est apparu.

Fichier : GrpOrgBearn64.xlsm

1566120969282.png


Dans Module MClassement

Rem. ——— PROCÉDURES À USAGE INTERNE

Private Sub InterpréterParam(ByVal ColOrd As Variant)


Peu être une mise a jour d'excel 2016 !!!!

Merci de votre regard.
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Bonsoir.
Il semble en effet qu'il y ait quelque chose qui ne passe plus dorénavant, c'est de retransmettre à une procédure un ParamArray sous forme de Variant quand il est vide. Je vais devoir corriger ça aussi dans mon GigIdx.xlsm destiné à être installé en complément xlam.
En tout cas j'ai modernisé le classeur avec les modules de service de ce dernier, déjà corrigés ici.
 

Fichiers joints

Bearn 64

XLDnaute Occasionnel
Bonjour @Dranreb,

Merci pour cette réponse très rapide.

J'ai un deuxième fichier a comparer avec 58 colonnes.
j'ai déplacé le résultat dans la colonne 60 OK.
Mais je perd les couleurs des cellules ?

Que dois je modifier.

Merci
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Les couleurs du résultat sont données par des mises en forme conditionnelles fixe.
 

Dranreb

XLDnaute Barbatruc
Comprends pas votre question.
Menu Accueil, groupe Styles, commande Mise en forme conditionnelle et Gérer les règles….
 

Bearn 64

XLDnaute Occasionnel
Bonjour @Dranreb,

GrpOrgBearn64.xlsm
quand les fichiers sont identiques.

erreur 1004

Module1
avant derniere ligne.
Feuil3.[A2].Resize(Ls, UBound(TS, 2)).Value = TS

comment gérer cette erreur.

Merci
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Mettez devant :
VB:
If Ls = 0 Then MsgBox "Aucun changement n'a été trouvé.", vbInformation, "Comparaison1": Exit Sub
Pour information, dans le fichier que j'ai gardé la procédure se termine maintenant comme ça :
VB:
Feuil3.Rows(2).Resize(1000).ClearContents
If Ls = 0 Then MsgBox "Aucun changement n'a été trouvé.", vbInformation, "Comparaison1": Exit Sub
Set Rng = Feuil3.[A2].Resize(Ls, UBound(TS, 2))
Rng.Value = TS
Rng.FormatConditions.Delete
Set Rng = Rng.Resize(, Rng.Columns.Count - 1)
MeFCR1C1(Rng, "=RC45=""Supprimé""", True).Interior.Color = &H7B96FD
MeFCR1C1(Rng, "=RC45=""Ajouté""", True).Interior.Color = &HFF00&
MeFCR1C1(Rng, "=AND(RC45=""Modifié"",R[-1]C=RC)", True).Interior.Color = &HC9F100
MeFCR1C1(Rng, "=AND(RC45=""Modifié"",R[-1]C<>RC)", True).Interior.Color = &HFFA5&
MeFCR1C1(Rng, "=R[1]C<>RC", True).Interior.Color = &HCEAFFF
Rng.Interior.Color = &HBABABA
End Sub

Private Function MeFCR1C1(ByVal Rng As Range, ByVal Formule As String, ByVal StopIfTrue As Boolean) As FormatCondition
   With ActiveSheet.Names.Add(Name:="NomTemporairePourMeFC", RefersToR1C1:=Formule)
      Application.GoTo Rng(1, 1)
      Set MeFCR1C1 = Rng.FormatConditions.Add(Type:=xlExpression, Formula1:=.RefersToLocal)
      .Delete: End With
   MeFCR1C1.StopIfTrue = StopIfTrue
   End Function
 

Bearn 64

XLDnaute Occasionnel
Bonjour.
Mettez devant :
VB:
If Ls = 0 Then MsgBox "Aucun changement n'a été trouvé.", vbInformation, "Comparaison1": Exit Sub
Cela fonctionne.

Avec Pour information, dans le fichier que j'ai gardé la procédure se termine maintenant comme ça :
J'ai cette erreur.
1566656305096.png

merci
 

Dranreb

XLDnaute Barbatruc
Ah ouais, je n'ai pas reproduit la ligne des déclarations en tête. La voici :
VB:
Dim TE(), LE&, TS(), LS&, Code As SsGr, Détail, C&, VLgNou(), VlgAnc(), Différent As Boolean, Cas As Byte, Rng As Range
 

Bearn 64

XLDnaute Occasionnel
Bonjour Dranreb,

Fichier mensuel avec erreur ci jointe.

vingt modifications dans nouveau fichier.

1567195096473.png

Erreur signalée sur Private Function MeFCR1C


merci de votre retour.
 

Dranreb

XLDnaute Barbatruc
Sur quelle instruction, et quelle instruction appelante si vous affichez la pile ?
Que disent les espions sur les expressions impliquées ? Aprenez donc un peu à déboguer, ça pourrait vous être utile un jour.
 

Bearn 64

XLDnaute Occasionnel
Re ;

La je suis vraiment un peu confus mais je n'est pas votre niveau de recherche.

MeFCR1C1(Rng, "=AND(RC45=""Modifié"",R[-1]C=RC)", True).Interior.Color = &HC9F100

divergences sur le module1.
ci dessus ligne en trop par rapport a votre dernière version.


Merci, merci.
 

Dranreb

XLDnaute Barbatruc
Oui parce que s'il à joué une MeFC qui teste =AND(RC45="Modifié",R[-1]C<>RC)
Il est inutile qu'une autre teste derrière =AND(RC45="Modifié",R[-1]C=RC)
Il suffit quelle teste =RC45="Modifié" puisque si R[-1]C<>RC est faux, alors R[-1]C=RC est forcément vrai.
Mais je ne pense pas que c'était ça qui plantait, si ?
 

Bearn 64

XLDnaute Occasionnel
bonjour,

La seule différence entre les macros était cette ligne en plus.
Les divergences étaient toutes trouvées et dons dans l'onglet resultat.

Set MeFCR1C1 = Rng.FormatConditions.Add(Type:=xlExpression, Formula1:=.RefersToLocal)
erreur porté sur

MeFCR1C1 =Nothing

Merci et je suis un utilisateur primaire des macros je vais voir pour déboguer

"Sur quelle instruction, et quelle instruction appelante si vous affichez la pile ?
Que disent les espions sur les expressions impliquées ? Apprenez donc un peu à déboguer"

Merci de votre patience et disponibilité
 

Discussions similaires


Haut Bas