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 :

application en macro VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut application en macro VBA
    Bonjour,

    je suis débutant en VBA.

    J'ai 2 fichers (test.xlsx et test2.xlsx) qui se trouvent dans un repertoire (W:\Ent\DIR\PA\GD\MACRO\test.xlsx)

    J'aimerai comparer les 2 fichiers (ci-joint)

    Dans le fichier test.xlsx (capture) on a A001= type + main + autre = PLN + PJM +QUA qui donne dans le fichier test2.xlsx (capture1) A001 =PLN;PJM;QUA

    Est-ce possible de comparer les 2 fichiers si les lignes sont identique (A001,A002,... du capture sont identique à celui de capture1) et de mettre en roucge les lignes qui ne le sont pas?

    Y a-t-il quelqu'un pour m'aidé SVP!!
    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, commence par une recherche

  3. #3
    Membre averti
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut
    bonjour,
    J'ai deja regardé tous les liens que vous m'avez envoyé.
    j'arrive toujours pas resoudre mon problème.

    ci-joint mon code

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Private Sub CommandButton3_Click()
     
            'Evite de voir les opérations intermédiaire sur les fichiers
     
            Application.ScreenUpdating = False
     
            'déclarations des variables
     
            Dim i As Long
            Dim j As Long
            Dim l As Integer
            Dim Trouve As Long
            Dim Time1 As Date, Time2 As Date
     
     
     
     
            Dim appExcel As Excel.Application
     
     
            Dim test2 As Excel.Workbook
            Dim tests2 As Excel.Worksheet
            Dim test As Excel.Workbook
            Dim tests As Excel.Worksheet
     
            'parametrage d'appel des fichiers
     
            Set appExcel = CreateObject("Excel.Application")  'creation de l'objet permettant d'ouvrir le fichier excel
     
            Set test2 = appExcel.Workbooks.Open("W:\Entit\DIR IND\PA\GD\Habib\ONSAN\test2.xlsx")  'classeur
            Set tests2 = test2.Worksheets("Documents")  'feuille
     
            Set test = appExcel.Workbooks.Open("W:\Entit\DIRIND\PA\GD\Habib\ONSAN\test.xlsx")
            Set tests = test.Worksheets("Feuil1")
     
     
                i = 4 'initialisation du compteur à 4 car la ligne 1,2,3 contient l'en-tête de chaque donnée
                Time1 = Now()
                For i = 4 To len(tests2)
                    While (tests2.Cells(i, 1).Value <> "" And (tests2.Cells(i, 5).Value <> "" Or tests2.Cells(i, 4).Value <> "" Or tests2.Cells(i, 22).Value <> "" Or tests2.Cells(i, 23).Value <> "")) ' tant que dans le fichier test la cellule en (ligne i, colonne A E D V W) n'est pas vide
                        j = 2
                         Time2 = Now()
     
                            'si la cellule du fichier test2 correspond à celle de test alors
                            For j = 2 To len(tests)
                                 If (tests2.Cells(i, 1).Value = _
                                tests.Cells(j, 2).Value And (tests.Cells(j, 3).Value = tests2.Cells(i, 5).Value + ";" + tests2.Cells(i, 4).Value + ";" + tests2.Cells(i, _22).Value + ";" + tests2.Cells(i, 23).Value)) Then
                                 Trouve = 1
                                 'On copie le code à la ligne actuelle dans une nouvelle colonne
                                     'tests.Cells(i, 3).Value = '_
                                    'tests2.Cells(j, 2).Value
                                    'j = j + 1
                                    tests.Cells(j, 1).Interior.Color = 2
                                    'tests2.Cells(j, 2).Interior.Color = 2
                                 'sinon on passe à la ligne suivante de icatfiltre
                                 Else
                                 'j = j + 1
                                 tests2.Cells(j, 1).Interior.Color = 27
     
                                 'j = j + 1
                                 End If
                            Next j
     
                        i = i + 1
     
                    Wend
     
                Next i
                'on ferme le classeur
                test.Close
            Debug.Print "TestListe :" & Format$(Time2 - Time1, "hh:mm:ss")
            Application.ScreenUpdating = True
     
    End Sub
    Ci-joint les 2 fichiers a comparés
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    merci de lire enfin les règles du forum afin de baliser le code comme il se doit.
    Par exemple, il est inutile d'ouvrir une nouvelle instance comme dans la ligne n° … (et oui sans le balisage !)

    Ensuite, une description du problème serait la bienvenue …

    Enfin, il serait judicieux la prochaine fois de créer la discussion dans le bon forum (ici le VBA Excel),
    là où il y a le plus de spécialistes …

    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo

  5. #5
    Membre averti
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut Application en VBA
    bonjour Marc-L,

    D'accord, mais j'ai déjà expliqué le problème.

    Mon problème est la suivante
    Je suis débutant en VBA.

    J'ai 2 fichers (test.xlsx et test2.xlsx) qui se trouvent dans un repertoire (W:\Ent\DIR\PA\GD\MACRO\test.xlsx)

    J'aimerai comparer les 2 fichiers (ci-dessus)

    Dans le fichier test2.xlsx on a A001= P1 +P2+ P3 = PLN + PJM +QUA qui donne dans le fichier test1.xlsx A001 =PLN;PJM;QUA

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par MacroVBA Voir le message
    bonjour Marc-L,

    J'aimerai comparer les 2 fichiers (ci-dessus)
    Cela vient juste d'être traité, cela ne fait pas deux semaines.

    Par pure bonté d'âme 8000 résultats

Discussions similaires

  1. [XL-2007] Lancement d'une application par une macro vba
    Par rijks dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2014, 09h12
  2. Réponses: 5
    Dernier message: 18/04/2014, 07h49
  3. [XL-2007] Problème lors de l'application de la protection des macros VBA
    Par bedrohung dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/09/2010, 22h32
  4. Réponses: 1
    Dernier message: 27/11/2008, 16h47
  5. [SQL][MACRO VBA]Pb de syntaxe
    Par Stef.proxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/08/2004, 09h11

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