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 de deux cellules et action [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Par défaut Comparaison de deux cellules et action
    Bonjour à tous,

    Mes cours de VB date d'un peu trop loin alors je cale. Si quelqu'un peut m'aider, je pense que c'est pas très compliqué.

    Je cherche a comparer deux cellules (A1 et D1) sur un même feuille. Si celle ci sont identiques alors je veux copier B1 sur E1.
    Et continuer cette vérification de A1 sur D2 puis D3 puis D4... (jusqu'a la fin de ma colonne D). Ainsi, si A1 = D85 alors B1 sera copié sur E85.

    Une fois que A1 s'est comparé avec toute la colonne D

    Alors je veux que A2 se compare avec toute la colonne D (en gardant la condition que si VRAI alors copier/coller de B2 vers la cellule qui a été comparée).

    Et ainsi de suite jusque la fin de ma colonne A

    J'ai entammé un petit script, qui fait presque ce que je veux, mais qui plante. Il doit y avoir un problème de boucle ou d'incrémentation :

    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
     
     
    Dim reffr As Integer
    Dim refeng As Integer
    Dim p As Integer
     
    Sub Macro2()
     
    reffr = 1
    refeng = 1
    p = 1
     
    Do While (reffr < 1150)
     
        For p = 1 To 1500
     
            If Range("A" & reffr) = Range("D" & refeng) Then
                Range("B" & reffr).Select
                Selection.Copy
                Range("E" & refeng).Select
                ActiveSheet.Paste
                refeng = refeng + 1
            Else
                refeng = refeng + 1
                Cells(refeng, 8).Value = 998
            End If
     
        p = p + 1
     
        Next
     
    reffr = reffr + 1
    refeng = 1
     
    Loop
     
    End Sub
    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    p = p + 1
    à l'intérieur d'une boucle
    For p = 1 to 1500
    fait en sorte que p est incrémenté de 2.

    Met cette ligne en commentaire et réessaie pour voir

  3. #3
    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,

    plusieurs voies possibles mais j'ai besoin d'un éclaircissement :

    peut-il y avoir des cellules vides au sein des données des colonnes A et D ?

    Sinon voici un exemple s'il n'y en a pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Demo()
        Application.ScreenUpdating = False
     
        With [A1].CurrentRegion
            For A& = 1 To .Rows.Count
                For D& = 1 To .Rows.Count
                    If .Cells(A, 1).Value = .Cells(D, 4).Value Then _
                       .Cells(D, 5).Value = .Cells(A, 2).Value
                Next D
            Next A
        End With
     
        Application.ScreenUpdating = True
    End Sub

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Et s'il y a du texte à comparer, l'utilisation de UCase ou LCase pourrait être utile

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Par défaut
    Merci Marc-L, cela fonctionne parfaitement. Et non il ne peut pas y avoir de cellules vides.

    Et merci aussi à Parmi, je retiens pour le UCase LCase mais pour l'instant, ça ne m'est pas utile.

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

Discussions similaires

  1. [XL-2013] Comparaison de colonnes/cellules et action spécifique (formule ou VBA)
    Par Sanglizaster dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 22/04/2015, 11h33
  2. comparaison de deux cellules
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/03/2009, 20h18
  3. Probleme de comparaison entre deux cellules identiques
    Par GlamIS dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/07/2008, 14h50
  4. comparaison de deux cellules
    Par khayate dans le forum VB.NET
    Réponses: 6
    Dernier message: 03/08/2007, 14h55
  5. boucle de comparaison de cellule et action conditionnelle
    Par PHPdudimanche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/05/2007, 09h40

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