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 :

VBA recherche, comparaison et déplacement de valeur [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2014
    Messages : 10
    Par défaut VBA recherche, comparaison et déplacement de valeur
    Bonjour,

    Je suis nouvellement inscrit et novice en VBA. Je cherche en fait à faire ceci : Prendre chaque valeur de la colonne A de la feuille une, aller la chercher sur la colonne A de la feuille deux. Si la macro trouve un résultat elle le déplace pour le mettre sur la même ligne de la colonne C de la feuille une. Sinon elle met un fond rouge.

    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    M le comptable fait du lettrage ou plutot du rapprochement !

    Voici à coller dans un module:
    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
    Sub essai()
    Dim cel As Variant
    Dim CpT As String
    Dim Cpp As Range
     
     
    On Error Resume Next
    'on boucle sur la colonne a feuil1
    For Each cel In Worksheets("feuil1").Range("A2:A" & [A65000].End(xlUp).Row)
     
     
    'recherche du nombre dans la colonne A
    Set Cpp = Sheets("feuil2").Columns("A:A").Find(What:=cel, LookAt:=xlWhole)
     
    'Si le nombre n'existe pas alors cellule C en couleur
    If Cpp Is Nothing Then
     
      cel.Offset(0, 2).Interior.ColorIndex = 3
     
     
    'Si le nombre existe on supprime la couleur et note le nombre!
    Else
      cel.Offset(0, 2).Interior.ColorIndex = xlColorIndexNone
      cel.Offset(0, 2) = cel
    End If
     
     
    Next cel
     
     
    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2014
    Messages : 10
    Par défaut
    Bien vu jijie. Il faut que ça aille plus vite pour faire du rapprochement.
    Merci en tout cas pour la réponse. Je vais de ce pas le tester.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    Il faut que ça aille plus vite pour faire du rapprochement.
    comment ça, c'est trop lent?

    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
    Sub essai()
    Dim cel As Variant
    Dim CpT As String
    Dim Cpp As Range
     
      Application.ScreenUpdating = False
     
    On Error Resume Next
    'on boucle sur la colonne a feuil1
    For Each cel In Worksheets("feuil1").Range("A2:A" & [A65000].End(xlUp).Row)
     
     
    'recherche du nombre dans la colonne A
    Set Cpp = Sheets("feuil2").Columns("A:A").Find(What:=cel, LookAt:=xlWhole)
     
    'Si le nombre n'existe pas alors cellule C en couleur
    If Cpp Is Nothing Then
     
      cel.Offset(0, 2).Interior.ColorIndex = 3
     
     
    'Si le nombre existe on supprime la couleur et note le nombre!
    Else
      cel.Offset(0, 2).Interior.ColorIndex = xlColorIndexNone
      cel.Offset(0, 2) = cel
    End If
     
     
    Next cel
     
      Application.ScreenUpdating = true
     
    End Sub
    et là est-ce plus rapide!! tu as bcp de lignes !

  5. #5
    Membre habitué
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2014
    Messages : 10
    Par défaut
    Non jijie, je me suis mal exprimé, ma phrase est bancale. Votre code marche nikel. Je voulais dire que sans macro le rapprochement prend trop de temps.
    Mais pour que ça marche je veux carrément couper le résultat trouvé et le déplacer au lieu de le copier.

    Merci encore le code est rapide et fonctionnel.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    Mais pour que ça marche je veux carrément couper le résultat trouvé et le déplacer au lieu de le copier.
    alors :

    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
    Sub essai()
    Dim cel As Variant
    Dim CpT As String
    Dim Cpp As Range
     
      Application.ScreenUpdating = False
     
    On Error Resume Next
    'on boucle sur la colonne a feuil1
    For Each cel In Worksheets("feuil1").Range("A2:A" & [A65000].End(xlUp).Row)
     
     
    'recherche du nombre dans la colonne A
    Set Cpp = Sheets("feuil2").Columns("A:A").Find(What:=cel, LookAt:=xlWhole)
     
    'Si le nombre n'existe pas alors cellule C en couleur
    If Cpp Is Nothing Then
     
      cel.Offset(0, 2).Interior.ColorIndex = 3
     
     
    'Si le nombre existe on supprime la couleur et note le nombre!
    Else
      cel.Offset(0, 2).Interior.ColorIndex = xlColorIndexNone
      cel.Offset(0, 2) = cel
      Cpp.EntireRow.Delete
    End If
     
     
    Next cel
     
      Application.ScreenUpdating = True
     
    End Sub

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2013, 13h14
  2. Réponses: 8
    Dernier message: 06/12/2013, 11h28
  3. Macro VBA de recherche et d'extraction de valeur
    Par mattchoco dans le forum Macros et VBA Excel
    Réponses: 42
    Dernier message: 06/07/2013, 22h59
  4. [XL-2003] Vba : recherche valeur dans tableau
    Par gandalf20000000 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2010, 19h35
  5. [VBA] Recherche d'une valeur dans un autre fichiers puis
    Par Nicos77 dans le forum Général VBA
    Réponses: 11
    Dernier message: 24/03/2006, 11h24

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