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

Evaluate ne fonctionne pas

  • Initiateur de la discussion Initiateur de la discussion klin89
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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:
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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
836
Réponses
5
Affichages
551
Réponses
15
Affichages
645
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…