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 :

Fonction find


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut Fonction find
    Bonsoir a tous,
    j'ai un problème sur l'utilisation de la fonction find.

    j'ai un tableau qui me sert de base, j'ai créé une userform ou je peut lire les données lignes par lignes, le but c'est de pouvoir trier la base dans un autre tableau en lui donnant une affectation qui correspond a une colonne qui reprend l'intitulé choisi pour le tri d'une combobox nommée comboaffectations.

    voici le code :

    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
    Sheets("TRAVAIL").Select
     
    Dim a As Integer: a = 1
    While Not IsEmpty(Cells(a, 1))
    a = a + 1
    Wend
     
    Cells(a, 1).Value = Textnumpiece.Text
    Cells(a, 2).Value = Textctrecouts.Text
    Cells(a, 3).Value = Textnatcompt.Text
    Cells(a, 4).Value = Textdesnatcompt.Text
    Cells(a, 5).Value = Textcptcpart.Text
    Cells(a, 6).Value = Textutilisateur.Text
    Cells(a, 7).Value = Textentete.Text
    Cells(a, 8).Value = Textref.Text
    Cells(a, 9).Value = Textdesign.Text
    Cells(a, 13).Value = Textdatepiece.Text
    Cells(a, 11).Value = Textdatecpt.Text
    Cells(a, 12).Value = Textsaisie.Text
    Cells(a, 10).Value = Textvaleur.Value
    Dim D As Integer
    ' Trouver la colonne pour affectation
     
    D = Cells.Find(What:=Comboaffectations.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Column
     
    ' Mettre la valeur dans la cellule concernée pour l'affecter dans la bonne colonne
     
    Cells(a, D).Value = Cells(a, 10).Value
    Donc le problème c'est que ça à marché a un moment donné ça me renvoyé bien la valeur dans la bonne colonne mais maintenant ça me la met toujour dans la colonne 9.

    Merci d'avance pour vos commentaires

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,


    Ce matin le message ne me parait pas très clair.
    Ou se situe la macro, est-ce une macro evenementielle ?

    Une piste, testes la valeur de Comboaffectations.Value quand tu fais ton find

  3. #3
    Membre confirmé Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut plus de précisions
    Bonjour,
    ce matin je vois aussi que je manque de précision,
    En fait j'ai une userform qui est le reflet de la premiere ligne d'une base de donnée :
    dessus je peux consulté : numéro de pièce, désignation, code comptable, numéro comptable, et donc ensuite cinq service voire plus pour l'affectation de l'écriture sur une combobox que j'ai rempli (je l'ai bien testé celà me renvoi bien l'écriture donc pas de problème).

    Maintenant le problème précis c'est que sur cette userform j'ai deux boutons un pour enregistrer l'affectation et un pour passer à la ligne suivante si je ne peux pas encore l'affecter.

    c'est lorsque je clique sur ce bouton enregistrer que l'affectation doit ce faire ma recherche consiste à mettre une valeur dans la bonne colonne.


    Service 1 Service 2 Service 3 Service 4
    valeur
    dans la useform dans ma combobox j'ai donc le choix service 1 , 2 , 3 ou 4 et ensuite celà doit me mettre la valeur dans la bonne colonne au dessus.

    le problème ce situe dans find mais je n'arrive pas à le résoudre, puisque quoi que je choisisse dans ma combobox il m'inscrit la valeur dans une colonne qui n'a rien à voir et en plus toujours la même.

    Merci

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour à tous,
    je ne suis pas sur que le début du code pour find soit correct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = Cells.Find(What:=Comboaffectations......
    ne faudrait'il pas une plage pour la recherche ?, je m'explique : tu cherches comboaffectations dans une plage

    à voir
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre confirmé Avatar de Larsen21
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut j'ai trouvé
    Merci a tous pour vos réponses,
    j'ai trouvé grace à casefayere qui m'a donné une bonne piste car effectivement le probleme était Dim D as integer.
    J'ai supprimé cette ligne et tou fonctionne parfaitement.

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

Discussions similaires

  1. Utilisation de la fonction find
    Par ylabarre dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 29/08/2007, 16h02
  2. [C++ .NET] Comment utiliser fonction Find ?
    Par thecrax dans le forum Framework .NET
    Réponses: 3
    Dernier message: 17/08/2006, 09h02
  3. [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
  4. [VBA-E]Fonction .find
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/01/2006, 11h03
  5. [VBA-E] Fonction "FIND"
    Par cinc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/09/2005, 11h16

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