IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ecrire résultats d'une comparaison dans une 3eme Worksheet


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Ecrire résultats d'une comparaison dans une 3eme Worksheet
    Bonjour,
    Je fais une comparaison de deux worksheets et aimerai repertorié les anomalies dans une 3ème worksheet.
    Mon but est de (A terme) retirer les msgbox que j'ai utilisé pour, dans un premier temps, vérifier mes comparaisons qui fonctionnent correctement et de les mettre dans la 3eme worksheet .
    Je voulais procédé comme ceci: (cf gras code ).
    Problème il ne me met que la derniere valeure ( ici valeur2) alors que j'aimerai toutes les avoir !
    Comment faire ? J'ai pensé mettre + VBCrLf a la fin de mon activecell. ... mais il me rajoute seulement une ligne sans rien remplir !
    Désolé si mon code est dégueulasse mais je débute en VBA donc je connais pas encore bien toute les ficelles du métier ^^

    D'avance merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     Dim search As Range 
        Dim valeur2 As String 
        Dim j, derlig2, numlig2 As Integer 
           With Sheets("Théorique") 
                derlig2 = .Cells(65536, 1).End(xlUp).row 
            End With 
        For j = 2 To derlig2 
            With Sheets("Théorique") 
                valeur2 = .Cells(j, 1).Value 
            End With 
            With Sheets("Réel").Columns(10) 
                Set search = .Cells.Find(valeur2) 
                    If search Is Nothing Then 
    'MsgBox "Feuille Théorique: Le contrat" & " (ligne" & " " & j & ")" & " n'a pas été trouvé" 
    Sheets("Feuil3").Select 
        Range("C2").Select 
            ActiveCell.FormulaR1C1 = valeur2 & " (" & "ligne" & " " & j & ")"                 Else 
                    'Compare ClientID, Trim Price, Bank informations 
                        numlig2 = search.row 
                        CodeAetG = Sheets("Réel").Cells(numlig2, 4).Value * 10 ^ 5 + Sheets("Réel").Cells(numlig2, 5).Value 
                        If Val(Sheets("Théorique").Cells(j, 2).Value) <> Sheets("Réel").Cells(numlig2, 3).Value Then 
                            MsgBox "Feuille Théorique: Le code Client" & " (" & "ligne" & " " & j & ")" & " est différent" 
                            If Val(Sheets("Théorique").Cells(j, 13).Value) <> Sheets("Réel").Cells(numlig2, 8).Value Then 
                            MsgBox "Feuille Théorique: Le Prix Trimestriel T.T.C." & " (" & "ligne" & " " & j & ")" & " est différent" 
                                If Val(Sheets("Théorique").Cells(j, 4).Value) <> Sheets("Réel").Cells(numlig2, 6).Value Then 
                                MsgBox "Feuille Théorique: Le Numéro de compte" & " (" & "ligne" & " " & j & ")" & " est différent" 
                                    If Val(Sheets("Théorique").Cells(j, 3).Value) <> CodeAetG Then 
                                    MsgBox "Feuille Théorique: Le Code Agence/Guichet" & " (" & "ligne" & " " & j & ")" & " est différent" 
                                    End If 
                                End If 
                            End If 
                        End If 
                    End If 
            End With 
      Sheets("Feuil3").Select 
        Range("C2").Select 
            ActiveCell.FormulaR1C1 = valeur2 & " (" & "ligne" & " " & j & ")" 
            Next j

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    j'ai remanié un peu ton code (que je n'ai pas pu tester)

    j'ai ajouter une variable pour définir sur quelle ligne écrire dans la feuille 3 et modifié l'écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Dim search As Range
    Dim valeur2 As String
    Dim j As Long, derlig2 As Long, numlig2 As Long
    Dim ligFeuil3 As Long
    derlig2 = Sheets("Théorique").Cells(65536, 1).End(xlUp).Row
    ligFeuil3 = 2 'commence à ecrire à la ligne 2 dans la feuille 3
     
      For j = 2 To derlig2
        valeur2 = Sheets("Théorique").Cells(j, 1).Value
        With Sheets("Réel")
          Set search = .Columns(10).Cells.Find(valeur2)
          If search Is Nothing Then
            'MsgBox "Feuille Théorique: Le contrat" & " (ligne" & " " & j & ")" & " n'a pas été trouvé"
            Sheets("Feuil3").Range("C" & ligFeuil3) = valeur2 & " (ligne " & j & ")"
            ligFeuil3 = ligFeuil3 + 1
          Else
            'Compare ClientID, Trim Price, Bank informations
            numlig2 = search.Row
            CodeAetG = .Cells(numlig2, 4).Value * 10 ^ 5 + .Cells(numlig2, 5).Value
            If Val(Sheets("Théorique").Cells(j, 2).Value) <> .Cells(numlig2, 3).Value Then
              MsgBox "Feuille Théorique: Le code Client" & " (" & "ligne" & " " & j & ")" & " est différent"
              If Val(Sheets("Théorique").Cells(j, 13).Value) <> .Cells(numlig2, 8).Value Then
                MsgBox "Feuille Théorique: Le Prix Trimestriel T.T.C." & " (" & "ligne" & " " & j & ")" & " est différent"
                If Val(Sheets("Théorique").Cells(j, 4).Value) <> Sheets("Réel").Cells(numlig2, 6).Value Then
                  MsgBox "Feuille Théorique: Le Numéro de compte" & " (" & "ligne" & " " & j & ")" & " est différent"
                  If Val(Sheets("Théorique").Cells(j, 3).Value) <> CodeAetG Then
                    MsgBox "Feuille Théorique: Le Code Agence/Guichet" & " (" & "ligne" & " " & j & ")" & " est différent"
                  End If
                End If
              End If
            End If
          End If
        End With
        Sheets("Feuil3").Range("C2").ActiveCell.FormulaR1C1 = valeur2 & " (" & "ligne" & " " & j & ")"
      Next j
    par contre dans la partie "Compare ClientID, Trim Price, Bank informations" est-tu sur de l'imbrication des IF car le second ne sera vérifié que qi le premier est vrai, le troisième que si les deux précédent sont vrai etc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If
      if
        if
     
        end if
      end if
    end if
    ne serait-ce pas plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if
     
    end if
     
    if
     
    end if

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 20h05
  2. Réponses: 4
    Dernier message: 02/07/2008, 12h32
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 27/08/2007, 00h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 11h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo