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 :

Comparaison en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de Mateos_hiss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2016
    Messages : 37
    Par défaut Comparaison en VBA
    Bonjour

    je travail sur un projet un peu compliqué ou je dois comparer 5 colonnes a d'autre 5 colonnes comme dans cette photo exemple
    Nom : exemple.png
Affichages : 289
Taille : 43,4 Ko

    le principe c'est de comparer les fonctionnalitées entre les deux releases et dans le resultats on aura les nouvelles fonctionnalitées qui existent dans le release2 et qui n'existent pas dans le release 1 en affichant aussi les communautées qui utilisent ces nouvelles fonctionnalitées avec le pourcentage de leur PNR dependant de du Total PNRS , je galére a trouver une solution vu que je suis un debutant en VBA , c'est la premiere fois que je participe dans le forum j'espere que vous m'aidiez , merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    La comme ça a chaud je vois plusieurs solution mais à mon avis le plus simple pour toi ce serait d'utiliser un dico qui enregistre les fonctionnalités de ton release 1 et qui après regarde celle de ton release 2 et qui à chaque fois qu'il découvre une nouvelle fonctionnalité tu implante ton histoire de communauté et tout

    Je te laisse allé voir d'abords ces liens si mon idée t'intéresse :
    http://plasserre.developpez.com/cour...age-vb3#LV-I-6

    http://access.developpez.com/sources...onnaireDonnees

  3. #3
    Membre actif Avatar de Mateos_hiss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2016
    Messages : 37
    Par défaut Rep
    merci pour ta reponse mais ca c'est encore plus compliqué pour moi vu que je suis qu'un debutant lool , y a pas d'autre moyens plus facil ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Après tu peux comparer ligne par ligne, ce serait peut être plus simple pour toi

    Pour commencer tu cherches le nombres de lignes maxi dans ton premier tableau que tu enregistre dans une variable
    Idem pour le deuxième tableau
    Puis tu compare ligne par ligne dans une double boucle avec des if ... then ...

    Tu penses y arriver ?

  5. #5
    Membre expérimenté
    Homme Profil pro
    développeur
    Inscrit en
    Février 2013
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : développeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 123
    Par défaut
    Bonjour,

    une variable de test en boolean qu'on appellera "test_comparaison" et qu'on initialisera à false
    Une boucle pour parcourir le tableau release 2.
    Dans cette boucle une seconde boucle pour parcourir le tableau release 1
    Dans cette seconde boucle, une comparaison entre la fonctionnalité de release 2 et de release 1
    Si ce sont les mêmes, on passe test_comparaison à true on quitte la boucle du release 1 et on passe à l'élément suivant de la boucle du release 2.
    Si ce ne sont pas les mêmes, on continue la boucle du release 1
    Si à la fin de la boucle du release 1, test_comparaison est toujours à false, on stocke dans les résultats la fonctionnalité et tout ce qui s'en suit.

    Bonne journée !

  6. #6
    Membre actif Avatar de Mateos_hiss
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2016
    Messages : 37
    Par défaut
    Merci beaucoup a vous je vais essayer ca maintenant

  7. #7
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Bonjour mateo,

    Je sais pas si du coup tu as réussi ton histoire mais pour t'aider (je l'ai fais très rapidement ce matin donc il y a moyen de l'améliorer ou de faire beaucoup mieux, notamment en mettant un double find mais bon la flemme ) je peux te proposer ceci (il faut bien entendu l'adapter à ton cas) :

    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
    Sub essai()
     
    Dim verif As Range 'variable qui vérifie si ta valeur existe ou non
     
    x = Sheets(1).Range("C4:C" & Sheets(1).Range("C:C").End(xlDown).Row).Count 'compte le nombre de ligne dans ton tableau 1
    y = Sheets(1).Range("I4:I" & Sheets(1).Range("I:I").End(xlDown).Row).Count ''compte le nombre de ligne dans ton tableau 1
     
    For j = 4 To y + 4 'pour chaque ligne de ton tableau 2
     
    a = Sheets(1).Range("N1:N" & Sheets(1).Range("N:N").End(xlDown).Row).Count + 1 'dernière ligne T3
     
    m = 0 'variable vérifiant si elle existe dans ton tableau 1
     
        For i = 4 To x + 4 'pour chaque ligne de ton tableau 1
     
        If Sheets(1).Cells(j, 9).Value = Sheets(1).Cells(i, 3).Value Then m = 1 'si la ligne de ton tableau 2 = ligne tableau 1
     
        Next i 'ligne suivante T1
     
    If m = 0 Then 'si pas d'occurance entre T1 et T2
    PNR = 1 - (Sheets(1).Range("J19").Value - Sheets(1).Cells(j, 10).Value) / Sheets(1).Range("J19").Value 'ton histoire de %
    PNR = Format(PNR, "0.00%") 'le format voulu
    Set verif = Sheets(1).Range("N:N").Find(Sheets(1).Cells(j, 9).Value) 'on cherche si on ne l'a pas déjà
     
        If verif Is Nothing Then 'si on l'a pas déjà
        Sheets(1).Cells(a, 14).Value = Sheets(1).Cells(j, 9).Value 'on récupère le nom
        texte = Sheets(1).Cells(j, 7).Value & Sheets(1).Cells(j, 8).Value & ", pourcentage PNR : " & PNR 'on applique l'histoire du PNR
        Sheets(1).Cells(a, 15).Value = texte 'on met l'histoire du PNR dans la colonne suivante
     
        Else 'si on l'a déjà
        texte = Sheets(1).Cells(verif.Row, 15).Value 'on récupère ce qu'il y avait déjà
        texte = texte & "; " & Sheets(1).Cells(j, 7).Value & Sheets(1).Cells(j, 8).Value & ", pourcentage PNR : " & PNR 'on ajoute la nouvelle ligne
        Sheets(1).Cells(verif.Row, 15).Value = texte 'on mets le tout à la place
     
        End If
     
    End If
     
    Next j 'ligne suivante pour T2
     
    End Sub

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

Discussions similaires

  1. boucle de comparaison en vba excel
    Par lokura dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/02/2012, 14h05
  2. comparaison colonnes VBA
    Par Ced39300 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/10/2011, 19h34
  3. [XL-2003] Calcul par comparaison en VBA
    Par didou038 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/06/2011, 12h11
  4. [VBA]excel comparaison de chaine de caractere
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2006, 15h32
  5. [vba] comparaison <>
    Par manujuggler dans le forum Access
    Réponses: 5
    Dernier message: 10/01/2006, 16h07

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