[IF] Comparaison de deux lignes

Bonjour,

Ca va faire un mois que j'ai dû me mettre au VBA pour mon travail en comptabilité, et je crois que tout mes principes de programmation sont en train de mourir.

J'ai deux classeur distincts possédant chacun une seule feuille. Sur leur feuille il y a un numéro de compte sur la 1ère colonne (les lignes différents mais cela importe très peu) et une autre colonne avec le solde(Colonne 5 et colonne 15/18).

Je souhaite donc, si le programme trouve une correspondance entre les deux classeurs d'un nom de compte, rechercher l'écart entre les deux, mais mon programme ne passe même pas la première condition.

J'ai bien fait attention à ce que le texte soit du même type (standard ou texte, mais aucun résultat)

Sub ecart()

    Dim compta As Workbook, CE As Workbook, fCompta As Worksheet, fCE As Worksheet
    Set compta = Workbooks("Balance comptable 2017 2018")
    Set CE = Workbooks("Balance Comptable Compta Expert 2017 2018")
    Set fCompta = compta.Worksheets(1)
    Set fCE = CE.Worksheets(1)

    For i = 2 To 166
        For j = 185 To 364
            If (fCE.Cells(i, 1) = fCompta.Cells(j, 1)) Then
                MsgBox "Entrée"
                If IsEmpty(fCompta.Cells(j, 15)) Then
                    fCE.Cells(i, 15) = fCE.Cells(i, 5) + fCompta.Cells(j, 18)
                Else
                    fCE.Cells(i, 15) = fCE.Cells(i, 5) - fCompta.Cells(j, 15)
                End If
            End If
            Next j
        Next i

End Sub

Merci d'avance pour l'aide !

Cordialement,

Gydhia.

Il fallait utiliser Cstr() ;___;

Bonjour

Tu devrais joindre tes 2 fichiers...

Bye !

Bonjour,

Difficile de dire ce qui ne va pas sans pouvoir tester ton code... les questions que je me pose sont les suivantes:

  • tu ne passes pas la première condition, c'est à dire? tu as un message d'erreur? la condition n'est jamais validée? a priori, les déclarations de classeurs et de feuilles sont bonnes, donc j'opterai plutôt pour le deuxième problème
  • quand tu compares 2 valeurs qui sont censées être identiques, est-ce qu'il y a des majuscules qui diffèrent? ou bien as-tu des espaces qui se baladent? à savoir que "bonjour" est différent de "Bonjour", qui est différent de "BONJOUR", car la comparaison respecte la case (majuscules <> minuscules), également, "bonjour" sera différent de "bonjour ". Une solution pour gérer les différences majuscules minuscules, et les espaces, tu peux utiliser les fonctions LCase, UCase, et Trim, LCase convertit tout en minuscules, UCase convertit tout en majuscules, et Trim supprimes les espaces à gauche et à droite de ta chaine de texte

Tu as déjà regardé la différence nombre et texte,il te reste à voir pour ça

Il fallait utiliser Cstr() ;___;

ah donc c'était bien un problème de texte <> pastexte

problème résolu donc

Rechercher des sujets similaires à "comparaison deux lignes"