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 :

[E - 03] Problème avec la fonction Find


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut [E - 03] Problème avec la fonction Find
    Bonjour a tous !


    J'ai un petit pb simple a résoudre je pense et si vous pouviez m'aider ce serait top !!

    J'ai besoin de comparer deux onglets d'un excel qui comportent beaucoup de cellules et de marquer les différences s'il y en a

    J'ai trouvé une macro sur internet que j'ai adaptée a ma situation.
    Cette macro marche avec des valeurs simples.

    Le problème est que les valeurs de mon tableau comportent beaucoup de décimales et dans les 2 onglets les valeurs sont parfois très proches mais pas identiques, et la macro les identifie comme des différences.
    Exemple :
    7.18999 dans l'onglet "1"
    7.18997 dans l'onglet "2"

    dans mes cellules, j'arrondis a 2 décimales donc les deux cellules sont en théorie exacte.
    En gros j'aimerais que il prenne la valeur de la cellule (ici 7.19) et non pas la valeur réelle 7.18999



    Voici ma macro, je pense que le problème se situe au niveau du LookIn:=xlvalues. J'ai essayé avec xlpart ca marche pas


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub colorier()
    For Each cel In Range("A1:CL3")
        Set absent = Range("'2'!A1:'2'!CL3").Find(cel, LookIn:=xlValues)
        If absent Is Nothing Then
            cel.Interior.ColorIndex = 3
        End If
    Next
    End Sub


    Voila ! D'avance merci !

  2. #2
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Bonjour,

    en arrondissant la cellule dans excel la valeur reste inchangée.

    Arrondie plustôt dans ton code.

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    oui j'ai vu que la valeur reste inchangée

    comment faire en sorte qu'elle soit vraiment arrondie ?

  4. #4
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Avant de lancer la macro avec le .Find, fais-toi une macro qui parcourt le fichier et arrondi ta cellule (la valeur et non le format).

    Ensuite enchaine avec ta macro .Find

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    merci!

    sais tu ou je pourrais trouver une telle macro ? je ne sais pas programmer !

  6. #6
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Et voila, tu parcours ton fichier avec une boucle et tu utilises cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Round(expression [,numdecimalplaces])
    Dans l'aide tout est expliqué.

    Si tu as des questions, n'hésites pas!

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Ok merci drakkar


    donc en gros je créé une macro arrondir


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sub arrondir()
     
    for i=1 to 300
     
    round( ?? ,2)
     
    end
    le pb c'est que je veux en gros qu'il arrondisse toutes mes cellules entre ma colonne J et ma colonne CJ et cela sur 300 lignes

    donc je dois mettre quoi a la place des "??" ?



    encore merci !

  8. #8
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Voici la base
    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
    Sub MaMacro()
    '   Les valeurs dans le range donné en paramètre seront arrondies au nombre de décimal donné.
        Call Arrondir("A1:B4", 2)
    '   Ici tu continues le restant de ton code avec le .Find
     
    End Sub
    Sub Arrondir(Plage As String, i As Integer)
        Dim c
     
        For Each c In Range(Plage)
     
            c.Value = Round(c.Value, i)
     
        Next c
     
    End Sub
    Tu peux utiliser cette macro Arrondir en lui donnant une plage comme paramètre.
    Tu peux adapter à ton besoin.

  9. #9
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    it works !!!

    merci c'est génial

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

Discussions similaires

  1. [XL-2010] Problème avec la fonction find-Envoi de mails à différentes adresses
    Par clemmb dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 28/10/2014, 12h12
  2. Problème avec la fonction find
    Par lil900 dans le forum MATLAB
    Réponses: 5
    Dernier message: 06/04/2014, 12h50
  3. Problème avec la fonction Find
    Par kyros21 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/01/2013, 13h50
  4. problème avec la fonction Find et un passage en argument
    Par paiva44 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2009, 18h56
  5. [VBA-E]Problème avec la fonction Find
    Par Mirx1 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/04/2006, 18h43

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