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 :

Comparer et tester Cellules [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Par défaut Comparer et tester Cellules
    Bonjour,

    J'ai un fichier Excel avec une Macro qui m'extrait simultanement pour plusieurs fichiers word qui se trouvent tous dans le meme dossier une partie de données ....parmis c'est données extraites pour chaque fichier y a les deux colonnes Version OS et Version SGBD

    Ce que je voudrais faire c'est de pourvoir faire un test sur ces deux colonnes

    Exemple du Test :
    Si pour chaque Version OS et Version SGBD extraites a patir d'un fichier Word est differente a ces versions (6.1 7.1 / 5.3 / 5.4 / 5.5 / 6.0 / 6.1 / Server 2008 SP2 / Server 2008 R2 / Server 2008 R2 SP1 / 5.1 / 5.5 / 11.2 / 2005 SP4 / 2008 SP2 / 2008 R2 SP1 / 8.4 / 9.0.3 / 9.7 / 2.6.3 / 2.6.4 )

    Alors on recopie les données dans un autre fichier Excel exactement dans la première feuille de calcul « Obsolescence »
    Sinon on les recopie dans la deuxieme feuille « Greenwich » dans ce autre fichier Excel


    Je vous joins mon Fichier Excel (Une ligne vide est laissée entre chaque partie de donnée d'un seul fichier extraites)

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Avec les fichiers en colonne A, les versions en colonne B et C :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim C As Range, Versions As String
    Versions = "6.1 7.1 / 5.3 / 5.4 / 5.5 / 6.0 / 6.1 / Server 2008 SP2 / Server 2008 R2 /" & _
    "Server 2008 R2 SP1 / 5.1 / 5.5 / 11.2 / 2005 SP4 / 2008 SP2 / 2008 R2 SP1 / 8.4 / 9.0.3 / 9.7 / 2.6.3 / 2.6.4 "
    For Each C In Range([A2], Cells(Rows.Count, 1).End(xlUp))
         If Len(applicatiion.Substitute(Versions, C.Offset(, 1).Value, "")) = Len(Versions) And _
            Len(applicatiion.Substitute(Versions, C.Offset(, 2).Value, "")) = Len(Versions) Then
        'alors copie dans obsolence
        Else
        'sinon copie dans Greenwich
        End If
    Next C

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Par défaut
    Salut Daniel.C

    Merci pour ta réponse

    Je voudrais si c'est possible que tu jette un coup d'oeil dans mon fchier Excel ou je veux faire un test...en effet ta réponse est intressante mais je sais pas si elle fait ce que je veux

    Je me re explique :

    Dans mon fichier Excel, j'ai une Macro qui m'extrait simultanement une partie des donnes a partir de plusieurs fichiers Word qui se trouvent tous dans le meme dossier.

    A la fin de l'extraction j'ai dans mon fichier Excel une colonne Nom du projet (Projet = Fichier Word) qui contient le nom du projet de chaque fichier Word ainsi que des données de chaque nom du projet dont Version OS et Version SGBD

    Ce que je veux faire c'est de comparer ces versions aprés extraction bien sur , si y a au moins une est differente a ces versions (6.1 7.1 / 5.3 / 5.4 / 5.5 / 6.0 / 6.1 / Server 2008 SP2 / Server 2008 R2 / Server 2008 R2 SP1 / 5.1 / 5.5 / 11.2 / 2005 SP4 / 2008 SP2 / 2008 R2 SP1 / 8.4 / 9.0.3 / 9.7 / 2.6.3 / 2.6.4 )

    Alors on recopie les données de chaque fichier sur lequel le test est vrai ( comme son nom du projet + ces autres données : Version et Nom OS/SGBD et WAS) dans un autre fichier Excel exactement dans la première feuille de calcul « Obsolescence »
    Sinon on les recopie dans la deuxieme feuille « Greenwich » dans ce meme autre fichier Excel

    Je vous joins mon Fichier Excel (Une ligne vide est laissée entre chaque partie de donnée d'un seul fichier extraites)

    Merciii
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Teste cette macro en changeant le nom du classeur de destination.

    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
    Sub test2()
    Dim C As Range, Versions As String, NomProjet As String, Sh As Worksheet, Ligne1 As Long, Ligne2 As Long
    Set Sh = Workbooks("Classeur3").Sheets(1)
    Ligne1 = 3
    Ligne2 = 3
    Versions = "6.1 7.1 / 5.3 / 5.4 / 5.5 / 6.0 / 6.1 / Server 2008 SP2 / Server 2008 R2 /" & _
    "Server 2008 R2 SP1 / 5.1 / 5.5 / 11.2 / 2005 SP4 / 2008 SP2 / 2008 R2 SP1 / 8.4 / 9.0.3 / 9.7 / 2.6.3 / 2.6.4 "
    With ThisWorkbook.Sheets("Elements d'obsolescence ")
        For Each C In .Range(.[B4], .Cells(.Rows.Count, 2).End(xlUp))
             If C.Value <> "" Then
                 If C.Offset(, -1).Value <> "" Then NomProjet = C.Offset(, -1).Value
                 If Len(Application.Substitute(Versions, C.Offset(, 1).Value, "")) = Len(Versions) Or _
                    Len(Application.Substitute(Versions, C.Offset(, 2).Value, "")) = Len(Versions) Then
                'alors copie dans obsolence
                    Ligne1 = Ligne1 + 1
                    Sh.Cells(Ligne1, 1) = NomProjet
                    Sh.Cells(Ligne1, 2).Resize(, 6).Value = C.Resize(, 6).Value
                Else
                'sinon copie dans Greenwich
                    Ligne2 = Ligne2 + 1
                    Sheets("Elements Greenwich").Cells(Ligne2, 1) = NomProjet
                    Sheets("Elements Greenwich").Cells(Ligne2, 2).Resize(, 6).Value = C.Resize(, 6).Value
                End If
            End If
        Next C
    End With
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Par défaut
    Re,

    Merci encore une fois pour tes réponses

    Juste une chose je mets ou cette macro ?
    Es ce que dans mon Nouveau classeur Excel qui va recevoir le resultat du test dans ce cas le fichier s'appllera Classeur3
    Ou bien dans l'ancien celui que je t'ai joint, ou j'ai déjè extrait mes données ?

    Autre chose quand j'excute ta macro ya une erreur 9 : L'indice n'appartient pas à la selection sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Sh = Workbooks("Classeur3").Sheets(1)
    Petite précision :
    Dan mon fichier Excel que je t'ai joint y a qu'une seule feuille de calcul car j'extrais tout sur la meme fille puisque c'est dance ce fichier que je vais faire le Test
    Dans mon nouveau fichier Excel y aura deja les nom de colonnes "Nom Projet"
    Nom et Version des OS, SGBD et WAS etc

    Merciii

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Juste une chose je mets ou cette macro ?
    Dans un module standard (Module3 qui est vide, par exemple). Dans le classeur que tu as mis en pièce jointe.

    Es ce que dans mon Nouveau classeur Excel qui va recevoir le resultat du test dans ce cas le fichier s'appllera Classeur3
    Non, tu l'appelles comme tu veux. Tu modifies juste la macro en conséquence.

    Autre chose quand j'excute ta macro ya une erreur 9 : L'indice n'appartient pas à la selection
    Est-ce que tu as créé un classeur nommé "Classeur3" ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Macro qui compare/compte les cellules
    Par borisp dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/11/2011, 10h42
  2. Réponses: 2
    Dernier message: 29/04/2010, 13h27
  3. [XL-2003] Comparer un une cellule entre deux feuilles
    Par alex santus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/09/2009, 23h03
  4. Comparer colonne avec cellule
    Par jaypaulojay dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/05/2007, 15h49
  5. tester cellule vide excel
    Par maxos75 dans le forum ASP
    Réponses: 1
    Dernier message: 14/09/2005, 17h02

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