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 :

Problème avec Find(), Excel Vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut Problème avec Find(), Excel Vba
    Bonjour tout le monde,

    Je re dépose un post aujourd'hui car j'ai encore un soucis sur un autre projet.
    Sous excel je dois comparer deux collons, c'est-à-dire que je regarde chaque cellule de la colonne pas et je vérifie si elle se trouve dans la colonne B. Si la cellule n'est pas présente je l'écris dans la colonne C.

    Le problème c'est que Find() ne fonctionne pas chez moi je comprend pas pourquoi, les cellules sont de type texte et contitenne des chiffres très grand du style 12caractères.
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For i = 2 To 11
           Set pos = Cells.Find(What:=Worksheets("caps").Cells(i, 13).Value, _
                       After:=Worksheets("mercure").Cells(1, 11))        
    If pos Is Nothing Then
            'cherche la premiere cellule vide
                DernCellUtil = Worksheets("Sauvegarde").Range("G1").End(xlDown).Row
                Worksheets("Sauvegarde").Cells((DernCellUtil + 1), 7).Value = Worksheets("caps").Cells(i, 13).Value
            End If
    Next i
    Dans la colonne C (celle située sur la feuille Sauvegarde), soit elle me réécri toutes les cellule de la colonne A, ou elle me réécri rien du tout. Alors qu'il y a bien des éléments de la colonne A présent dans la colonne B, mais pas tous.

    Que faire?

    Merci beaucoup d'avance!

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour mmmxtina le forum compare la colonne a avec la colonne b si pas present copy sur colonne c de la meme feuille a adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Sub essai()
    Dim i As Long, c As Range
    Application.ScreenUpdating = False
    For i = 2 To Range("A65535").End(xlUp).Row
    Set c = Range("b2:b" & Range("b65000").End(xlUp).Row).Find(Cells(i, 1))
    If c Is Nothing Then Range("c65536").End(xlUp)(2) = Cells(i, 1)
    Next i
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    Bonjour laeticia, merci beaucoup de ta réponse.

    Par contre je n'ai pas bien compris la 2e ligne du for:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set c = Range("b2:b" & Range("b65000").End(xlUp).Row).Find(Cells(i, 1))
    est-ce-que tu pourrai m'expliquer brièvement, en fait je ne comprend pas pourquoi tu à Range(Range().Find())?

    Merci beaucoup.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 235
    Par défaut
    bonjour, en gros la deuxieme ligne va recherche dans la colonne B jusqu'a la derniere ligne 'Range("b2:b" & Range("b65000").End(xlUp).Row)' et va chercher dans cette colonne la valeur de la celulle de 'i'

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    Merci lilp1, pour ta réponse.
    Bon je dois avouer que je ne suis pas très douée en vba, en fait les données sont sur 3 onglets différents peut-être que cela pose problème, car ça ne fonctionne pas chez moi. je te montre ce que j'ai écris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim i As Long, c As Range
            Application.ScreenUpdating = False
            For i = 2 To Worksheets("Feuil1").Range("M65535").End(xlUp).Row
                Set c = Worksheets("Feuil2").Range("k2:k" & Range("k65000").End(xlUp).Row).Find(Cells(i, 1))
            If c Is Nothing Then Worksheets("Feuil3").Range("g65536").End(xlUp)(2) = Cells(i, 1)
        Next i
    J'ai repis la syntaxe de laeticia, que je n'ai pas trop compris j'avou et rien n'est écris dans la feuille3, alors que quand je fais du pas à pas, il me semble que la fonction passe par le If c is nothing...
    bizare bizare, je comprend pas.

    Merci beaucoup!

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 235
    Par défaut
    COntent d'avoir put t'aider, mais aps mes connaissances s'arretent la, je poste bcp plus de questions que je n'apporte de réponse. j'ai put t'aider, car j'ai eu pas mal de pbrs avec Find aussi y a 2 3j.

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    J'avai mal adapté le code excusez moi!!!
    donc là la fonction Find() m'écris quelquechose mais tout ce qui se trouve dans la colonne m feuille 1, alors que ce que je voulais c'est quand quelquechose de la colonne M feuille 1, est dans la colonne k feuille 2, on ne fais rien, c'est seulement quand on le trouve pas on écris dans la colonne g feuille 3.
    J'ai écris ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim i As Long, c As Range
            Application.ScreenUpdating = False
            For i = 2 To Worksheets("feuil1").Range("M65535").End(xlUp).Row
                Set c = Worksheets("feuil2").Range("k2:k" & Range("k65000").End(xlUp).Row).Find(Worksheets("feuil1").Cells(i, 13))
            If c Is Nothing Then
                Worksheets("feuil3").Range("g65536").End(xlUp)(2) = Worksheets("feuil1").Cells(i, 13)
            End If
        Next i
    J'ai toujours le même problème je ne comprend pas, même quand j'essai avec des lettre genre a, b ou c, eh bien il ne les retrouve pas dans la feuil2 colonne k.
    une idée du problème?
    merci.

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

Discussions similaires

  1. Problème avec un code Vba Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/10/2007, 16h43
  2. Problème avec un TreeView VBA
    Par JojoAlex dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 22/05/2007, 16h59
  3. Problème avec une instruction VBA
    Par Jpeg69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/05/2007, 12h58
  4. Problème avec fichier Excel génère erreur
    Par Yanmeunier dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/02/2006, 11h53
  5. Problème avec open() [Excel VBA]
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 16h21

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