Comparaison contenu cellules

Bonjour

Je vous explique mon problème :

Dans la colonne A située sur une feuille nommée Resultats, chaque cellule dépend de la précédente avec une formule. Je voudrais comparer le contenu de deux cellules qui se suivent.

Si les valeurs des 2 cellules sont différentes, alors on passe à la ligne suivante (OK avec le next i je pense)

Si les valeurs dans les 2 cellules sont égales, je reste sur la même ligne (i = i -1 ????)

With Sheets("Resultats")
     Dlig1 = .Range("A" & Rows.Count).End(xlUp).Row
     For i = Dlig1 +1 to nb
          Sheets("Resultats").Range("A" & i).FormulaLocal = "=SI(B" & i & "=1;A" & (i - 1) & ";" _
          & "A" & (i - 1) & "+" & dt & ")"
          .... 'd'autres formules
           tA = Sheets("Resultats").Range("A" & i - 1).Value
          tB = Sheets("Resultats").Range("A" & i).Value
          If tA = tB Then
                i = i - 1
          End if
     Next i
End With

Quand je regarde sur la feuille résultats, j'ai tA et tB qui sont égaux de temps en temps. Pourtant il ne reconnait pas la comparaison...

J'aurais donc besoin de votre aide.

Merci d'avance.

Romhin

Bonjour,

une possibilité, ajouter des décimales au format des cellules, peut-être que vous verrez qu'il ne sont pas identique

Merci de votre réponse mais ce n'est pas une question de décimale.

Peut-être qu'un exemple aidera à comprendre :

sur la feuille resultats :

ligne 74 colonne A : 10,000

ligne 75 colonne A : 10,000

Problème :

quand je lui demande d'afficher tA et tB, quand je regarde à la ligne 75 :

tA (ligne i - 1 = 74) = 10,000

tB (ligne i = 75) = 10,025

?????

pourriez-vous joindre votre fichier ?

Voilà mon fichier : j'ai enlevé tout ce qui était confidentiel

https://www.cjoint.com/c/GHhi6HpOefA

Merci à ceux qui voudront bien m'aider.

Romhin

Romhin a écrit :

Voilà mon fichier : j'ai enlevé tout ce qui était confidentiel

https://www.cjoint.com/c/GHhi6HpOefA

Merci à ceux qui voudront bien m'aider.

Romhin

Bonjour,

il est d'usage de mettre le fichier sur ce site , il y restera , alors que sur cjoint il sera disparu dans quelques temps.

P.

Mon fichier est trop gros pour qu'il puisse être mis sur le site

Bonjour,

Au départ tu cites un bout de code incomplet...

Ceci :

     For i = Dlig1 +1 to nb

paraît toutefois bien curieux !

Dlig1 est le numéro de la dernière ligne occupée de la colonne A, tu y ajoutes 1 comme point de départ de ta boucle, tu pars donc de la première ligne vide en A...

Et tu entends incrémenter jusqu'à nb, dont on ne connaît pas la valeur ?

Si nb n'est pas supérieur à Dlig1+1, la boucle s'arrêtera avant de commencer...

Cordialement.

Si vous regarder la macro Bouton_GO sur mon fichier :

En Feuille_entree : temps et volume saisis et bouton GO pour lancer le remplissage du tableau en Resultats

Dans Resultats, je veux savoir ce qui se passe entre 2 temps et 2 volumes saisis en Feuille_entree.

Il y a une première boucle sur l pour parcourir le tableau en Feuille_entree.

Je calcule nb_intervalles = temps(l+1) - temps (l) / pas de temps dt

Cela permettra de remplir le tableau en Resultats de la dernière ligne remplie +1 à ce nb_intervalles.

Pour savoir le volume enlevé ou ajouté à chaque nouvelle ligne suivant si on a une baisse ou une hausse, je calcule le pas de volume dv :

dv = volume(l+1) - volume(l) / nb_intervalles.

Et après j'ai quantité de formules qui se remplissent avec une boucle sur i de la dernière ligne remplie +1 à (nb_intervalles + dernière ligne remplie)

Le tableau en Resultats se remplit cellule par cellule et ligne par ligne.

Malheureusement, dans la construction de ce fichier, dans le cas d'une baisse, il y a des itérations dès que l'on change de volume.

Le volume et le temps restent identiques pendant quelques lignes avant qu'une condition permette de changer à nouveau le volume et donc le temps. Mais le nb_intervalles n'est pas modifié et la boucle sur i s'arrête trop tôt.

C'est pour cela que je voulais faire une comparaison sur les temps entre 2 cellules qui se suivent.

Si les temps sont égaux alors au lieu de passer à la ligne suivante, tu réécris sur la même ligne.

J'espère que c'est plus clair.

Romhin

Mon propos n'était pas d'entrer dans les arcanes de tes calculs... mais plutôt de t'inviter à en sortir la tête , pour constater par exemple que si Dlig1 = 100 et nb = 10, une boucle : For i = 101 To 10 n'a aucune chance de jamais démarrer !

Cordialement.

Si elle démarre car la boucle sur i va de (Dlig1 + 1) à (nb_intervalles + Dlig1). De cette faaçon, elle ajoute à nb_intervalles le nombre de lignes déja remplies dans le tableau en Resultats.

Voir mon dernier post et mon fichier.

Mais cela ne résout pas mon problème

Cordialement

Si elle démarre car la boucle sur i va de (Dlig1 + 1) à (nb_intervalles + Dlig1). De cette façon, elle ajoute à nb_intervalles le nombre de lignes déja remplies dans le tableau en Resultats.

Voir mon dernier post et mon fichier.

Mais cela ne résout pas mon problème

Cordialement

Rechercher des sujets similaires à "comparaison contenu"