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

VBA utilisation de IF Then IF HELP!!!

  • Initiateur de la discussion Initiateur de la discussion lema
  • 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 !

lema

XLDnaute Nouveau
Bonjour à tous
Je suis nouvelle dans le monde VBA et je galère !!
Je veux utiliser la fonction If then If mais ça ne marche pas
Il faut que la macro compare si le contenu de la Feuil1.cells (i,1) est égal au contenu de la Feuil2.cells ( n,11) si cette condition est exacte, il faut qu'elle compare si le contenu la Feuil1.cells (i,3) est <> du contenu de la Feuil2.cells ( n, 16) si c'est deux conditions sont prouvées le Feuil1.Cells (i,5) = " ecarts de montants"

Voilà j'ai essayé de mettre le code en forme mais ça ne marche pas : ( !! j'ai vraiment besoins de votre aide car je suis complètement bloquée

J'ai aussi attaché le fichier avec l'exemple

Voici le code

For i = 2 To totalrowsf1
For n = 2 To totalrowsf2

If (Feuil1.Cells(i, 1).Value = Feuil2.Cells(n, 11).Value) Then If (Feuil1.Cells(i, 3).Value <> Feuil2.Cells(n, 16).Value) Then Feuil1.Cells(i, 5).Value = "Attention Ecart montant" Else Feuil1.Cells(i, 5).Value = "rien à signaler"

Next
Next



Merci à tous pour vos conseils et votre aide
Lema
 

Pièces jointes

Re : VBA utilisation de IF Then IF HELP!!!

Bienvenue dans la prise de tête VBA . . .
Essaie de mettre comme ceci. (non testé)
Code:
For i = 2 To totalrowsf1
For n = 2 To totalrowsf2
   
If Feuil1.Cells(i, 1).Value = Feuil2.Cells(n, 11).Value Then
 If Feuil1.Cells(i, 3).Value <> Feuil2.Cells(n, 16).Value Then
  Feuil1.Cells(i, 5).Value = "Attention Ecart montant"
 Else
  Feuil1.Cells(i, 5).Value = "rien à signaler"
 End If
End If
Next
Next
Bruno
 
Re : VBA utilisation de IF Then IF HELP!!!

Bonjour lema,

J'ai repris ton code et modifié quelques lignes pour le simplifier. Ensuite, je me suis rendu compte qu'il ne fonctionnait pas car dans Feuil1 en colonne A tu as du texte et sur Feuil2 en colonne K, tu as des nombres. J'ai modifié une partie des textes en nombre dans la Feuil1 et le code fonctionne. Maintenant, si tu as toujours des nombres d'un coté et du texte de l'autre, il faudra légèrement modifier le code.

Tiens moi au courant.

A+

Edit : Salut Youki. Moi, j'ai testé le code !!!
 

Pièces jointes

Re : VBA utilisation de IF Then IF HELP!!!

Bonjour,
La touche F1 est d'une grande utilité, penses y...
Débutant ou non, un code se doit d'être structuré; on s'y retrouve mieux, on repère plus facilement les erreurs et oublis, et on le rend plus agréable à lire ce qui n'enlève rien
Code:
For i = 2 To totalrowsf1
    For n = 2 To totalrowsf2
        If (Feuil1.Cells(i, 1).Value = Feuil2.Cells(n, 11).Value) Then
            If (Feuil1.Cells(i, 3).Value <> Feuil2.Cells(n, 16).Value) Then
                Feuil1.Cells(i, 5).Value = "Attention Ecart montant"
            Else
                Feuil1.Cells(i, 5).Value = "rien à signaler"
            End If
        End If
    Next n
Next i
A+
kjin
 
Re : VBA utilisation de IF Then IF HELP!!!

Bonjour Fred,

Merci pout le test et les modifications sur nombre vs texte
Avec la conversion du texte en nombre la macro marche.
Mon seul souci, c'est que la feuil 1 est un extrait d'un outil de gestion et que la colonne A sera toujours en texte.
Est ce qu'il faudrait modifier la colonne A avant de lancer la fonction IF? Le souci "je sais encore" c'est quand je passe par format cellule on me dit que mes cellules sont en standard et pas en Texte

Encore merci pour tes explication
Lema
 
Dernière édition:
Re : VBA utilisation de IF Then IF HELP!!!

Bonjour à tous,

pour convertir une colonne, essaye ceci, conversion de la colonne A, le séparateur décimale des données source étant la virgule :
Code:
Columns(1).TextToColumns Destination:=Range("A1"), DecimalSeparator:=","

bonne journée
@+
 
Re : VBA utilisation de IF Then IF HELP!!!

Bonjour,

il semble que tes listes n'aient pas de doublon. Essaie, pour améliorer les performances :
Code:
Sub lastfundings()
    Dim Cels As Range, Est As Range
    'convertit les textes numériques en nombre
    With Sheets("Feuil1")
        .[A:A].Value = .[A:A].Value
        'recherche en colonne A de Feuil1 les nombres de colonne K de Feuil2
        For Each Cels In Sheets("Feuil2").Range("K2:K" & Sheets("Feuil2").Cells(Rows.Count, "K").End(xlUp).Row)
            Set Est = .[A:A].Find(Cels)
            'si trouvé, teste les montants
            If Not Est Is Nothing Then
                If .Cells(Est.Row, 3) <> Cels.Offset(, 5) Then .Cells(Est.Row, 5).Value = "Attention : écart"
            End If
        Next
    End With
End Sub
 

Pièces jointes

- 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
290
Réponses
2
Affichages
218
Réponses
8
Affichages
486
Réponses
4
Affichages
212
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
185
Réponses
8
Affichages
238
Réponses
5
Affichages
247
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
536
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…