Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Evaluate ne fonctionne pas

klin89

XLDnaute Accro
Bonsoir à tous,

J'ai passé ma soirée à m'arracher les cheveux avec la méthode Evaluate
La colonne D doit me renvoyer le même résultat qu'en colonne C
et cela ne fonctionne pas, cela me renvoie que des 1, qu'ai-je oublié
Il s'agit d'incrémenter des doublons.

VB:
Sub test_Evaluate()
    With Range("A1", Range("A" & Rows.Count).End(xlUp))
        lastrow = Range("A" & Rows.Count).End(xlUp).Row + 1
        'Résultat en colonne C
        .Offset(, 2).Formula = "=IF(ISBLANK(A1),"""", COUNTIF($A$1:$A$" & lastrow & ", A1) - COUNTIF($A2:$A$" & lastrow & " ,A1))"
        'Résultat en colonne D
        .Offset(, 3).Value = Evaluate("=IF(ISBLANK(A1),"""", COUNTIF($A$1:$A$" & lastrow & " ,A1) - COUNTIF($A2:$A$" & lastrow & " ,A1))")
    End With
End Sub
Bonne nuit à tous, je vais me coucher
A demain klin89
 

Pièces jointes

  • increment1_doublons.xls
    27.5 KB · Affichages: 47

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Evaluate ne fonctionne pas

Bonjour à tous,

Un essai (sans EVALUATE):
VB:
Sub Denombrer()
  With Range("d1:d" & Range("a" & Rows.Count).End(xlUp).Row)
    .Cells(1, 1).FormulaLocal = "=SI(A1="""";"""";NB.SI($A$1:A1;A1))"
    .Cells(1, 1).AutoFill .Cells: .Value = .Value
  End With
End Sub
 

job75

XLDnaute Barbatruc
Re : Evaluate ne fonctionne pas

Bonjour klin89, JB, mapomme,

La formule en colonne C peut être nettement simplifiée !

Et pour le résultat en colonne D il faut la compliquer pour obtenir une formule matricielle avec OFFSET (DECALER) :

Code:
Sub test_Evaluate()
Dim lastrow&
With Range("A1", Range("A" & Rows.Count).End(xlUp))
  lastrow = .Count
  'Résultat en colonne C
  .Offset(, 2) = "=IF(ISBLANK(A1),"""",COUNTIF(A$1:A1,A1))"
  'Résultat en colonne D
  .Offset(, 3) = Evaluate("=IF(ISBLANK(A1:A" & lastrow & "),"""",COUNTIF(OFFSET(A1,,,ROW(A1:A" & lastrow & ")),A1:A" & lastrow & "))")
End With
End Sub
A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Evaluate ne fonctionne pas

Re,

Une petite explication n'est peut-être pas superflue.

Quand on écrit pour une plage plage.Value = X ou plage = X

il faut que X soit une matrice de valeurs (un tableau VBA).

A+
 

klin89

XLDnaute Accro
Re : Evaluate ne fonctionne pas

Bonsoir à tous,

Aujourd'hui, c'était la journée des aidants, je suis servi
Va falloir que je me mette aux formules un jour, c'était plus simple en effet
Sinon, c'était Evaluate qui me turlupinait
Job75, super ta solution

Merci à tous et bonne soirée
klin89
 

Discussions similaires

Réponses
2
Affichages
136
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…