Créer une inputbox pour rechercher une valeur

Résolu
caribou38 Messages postés 31 Statut Membre -  
caribou38 Messages postés 31 Statut Membre -
Bonjour,
comment puis je utiliser une boite qui permettrait de saisir une valeur a rechercher dans une liste et de sélectionner toutes les cellules qui contiennent cette valeur et d'inscrire dans la cellule a coté l'heure.
je n'arrive pas a combiner la fonction recherche et une inputbox.
Merci de votre aide
Configuration: Windows XP
Firefox 3.0

18 réponses

  1. balou01 Messages postés 86 Statut Membre 2
     
    une des bases de ce forum si tu veux obtenir de l'aide c'est de nous dire dans quel langage tu souhaite faire ca...

    Il n'y a aps quelqu'un qui va te donner la solution dans tous les langages possibles et imaginable !
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      salut
      je travaille sur un fichier excel et je dois réaliser des macro
      -1
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    C'est facilement faisable mais ce serait peut-être plus simple de sélectionner une des cellules qui contient les cellules à chercher et un bouton pour envoyer.

    Qu'en dit-tu ?
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      bonjour
      mon souci c'est que je n'arrive pas a ecrire la macro qui me permette de cherche dans la colonne les valeurs qui corresponde au critere

      for i=9 TO 100
      Maplage=range("F9:F100)
      cells.find(what=range"G2",after :activecell).activate
      activecell.offset(0,3)=time

      NEXT


      Probleme cette macro ne fonctionne pas comme voulu elle cherche dans toutes les cellules de la feuille et ecrit un peu partout

      j'ai besoin de votre aide merci
      -1
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Tu ne précise pas les coordonées mais j'ai déduit..
    Sub BV2()
    Dim i As Long
    Dim Debut1 As Integer
    Dim Critere As Variant
        Debut1 = 9
        Critere = Cells(2, 7) 'pour G2
        For i = Debut1 To Range("F1").SpecialCells(xlCellTypeLastCell).Row
            If Cells(i, 6) = Critere Then 'teste colonne F
                Cells(i, 9) = Time 'écrit colonne I
            End If
        Next i
    
    End Sub

    Tu dit
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      bonjour
      merci de ton aide ta formule fonctionne parfaitement
      j' utilisais cette macro
      If Range("IV1") > 0 Then
      For Each objCell In Range("U4:AV2000")
      If objCell.Value = Range("IV1") Then objCell.Offset(1, 2) = Time
      Next objCell

      mais elle met du temps a traiter toutes les lignes
      merci pour ta solution

      maintenant je me heurte a un autre problème je dois ecrire une macro qui recherche une valeur dans une colonne une fois celle ci trouvé recopie les certaines cellules par exemple A1,A10,A23 jusqu'a 7 valeurs et les recopier dans un bon

      je ne sais pas si j'ai été clair mais je n'arrive plus a réfléchir avec ce probléme sujet de mon stage merci de ton aide

      a+
      -1
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    c'est quoi ton 'bon', une feuille ? un UserForm ?

    Montre la macro que tu a commencé pour ca.
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      bonjour
      voila une partie de ma macro qui me pose probleme
      la macro cherche dans base de donnée une valeur entrée range "CV2" dés qu'elle trouve elle se décale copie la valeur trouvé et la copie dans un fiche (bon) sur une autre feuille
      probleme si la valeur n'est pas trouvé la macro plante
      merci du temps que tu me consacres



      'remplie local dans le bon (fiche dans une feuille qui doit être imprimée

      With Sheets("bon")
      Columns("J:J").Select
      Selection.Find(what:=Range("CV2"), After:=ActiveCell, LookIn:= _
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
      xlNext, MatchCase:=False, SearchFormat:=False).Activate
      ActiveCell.Offset(0, 1).Select

      ActiveCell.Copy

      Range("A8:A15").Select
      Selection.Find(what:=Range("CV2"), After:=ActiveCell, LookIn:= _
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
      xlNext, MatchCase:=False, SearchFormat:=False).Activate
      ActiveCell.Offset(0, 2).Select

      ActiveSheet.Paste


      Columns("J:J").Select
      Selection.Find(what:=Range("CV2"), After:=ActiveCell, LookIn:= _
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
      xlNext, MatchCase:=False, SearchFormat:=False).Activate
      ActiveCell.Offset(0, 2).Select

      ActiveCell.Copy

      Range("A8:A15").Select
      Selection.Find(what:=Range("CV2"), After:=ActiveCell, LookIn:= _
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
      xlNext, MatchCase:=False, SearchFormat:=False).Activate
      ActiveCell.Offset(0, 3).Select

      Range("B6") = Range("'feuille de saisie'!J6")
      Range("B7") = Range("'feuille de saisie'!G6")
      Range("B8") = Range("'feuille de saisie'!E6")
      Range("E16") = Range("'feuille de saisie'!H6")


      ActiveSheet.Paste

      je devrait utiliser une boucle pour effectuer la recherche mais je n'obient qu'un macro qui tourne a l'infini
      a+
      -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Pour ta 1ère erreur faut mettre un On error,
        On Error GoTo passe
        ......
        Exit Sub
    Passe:
        msgbox "Valeur non trouvée"
    End sub

    Pour le 2 je supose que c'est ça que tu veux faire ?

    Pour effectuer des recherches plus complexes, utilisez une instruction For Each...Next avec l'opérateur Like. Par exemple, l'exemple de code suivant montre comment rechercher toutes les cellules de la plage A1:C5 qui utilisent une police dont le nom commence par les lettres « Cour ». Lorsque Microsoft Excel trouve une cellule correspondante, il lui affecte la police Times New Roman.
    For Each c In [A1:C5]
        If c.Font.Name Like "Cour*" Then
            c.Font.Name = "Times New Roman"
        End If
    Next

    Sinon tu explique mieux le 2.
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      bonjour

      merci pour le temps que tu me consacre

      je joint un exemple de mon dossier excel afin que tu voit ce que je doit faire
      tes conseils m'ont fait progresser dans mon projet encore milles merci

      https://www.cjoint.com/?icnHRTXfv5

      j'ai annoté en vert sur la feuille ce a quoi je dois aboutir sans y parvenir pour l'instant je tourne en rond
      -1
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Je comprend pas, Met les données complète (remplir toute la ligne)pour une ligne dans la feuilles moteur, y compris la 2èm ligne qui semble être prise en compte ...NB+ et NB- ? à l'avant dernière colonne.
    Ensuite, avec les données de la feuilles moteur, tu rempli complètement la feuille bon, tu demande des données de 1 à 7 mais quoi?

    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      bonjour

      je te remet un exemple de mon fichier
      ce que je cherche a faire c'est rechercher dans la dernière colonne feuille "moteur"
      les cellules qui contiennent un numéro de bon de le recopier dans la feuille bon en F3
      de recopier sur la ligne tous les numéro de bon par exemple (V4,Z4,AD4...) et de les recopier sur la feuille bon en (B9,C9,D9,E9,F9,G9,B10)
      ensuite copier le bon dans feuille impression
      et refaire la meme procédure avec ligne suivante contenant un numéro de bon


      je sait que je ne suit pas très clair et je m'en excuse

      https://www.cjoint.com/?icqqQ1SFPr
      -1
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    J'ai pourtant été clair, du moins il me semble...
    Ensuite, avec les données de la feuilles moteur, tu rempli complètement la feuille bon, tu demande des données de 1 à 7 mais quoi?
    Pour mieux me faire comprendre, A LA MAIN TU REMPLI LE BON AVEC LES DONNEES COMME IL DOIT ETRE, JUSTE AVANT DE LE METTRE DANS LA FEUILLE IMPRESSION. comme ça, j'ai des repères sur ce que tu veux.
    Et question suplémentaire, tu dit ensuite passer à la ligne suivant et recommencer,
    MAIS OU DOIT-ONT METTRE le 2ém formulaire... le 3em etc...sur la feuille impression ? l'un en dessous de l'autre ?
    Dit-toi bien que je ne suis pas dans ta tête et qu'il me faut des renseignements, tant que je ne sais pas exactement ce que tu veux il est impossible d'y arriver.
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      bonjour

      et encore merci de ta patience
      je te remet un exemple avec un bon rempli avec les informations que je veux voir apparaitre dessus
      oui les bon doivent être enregistré a la suite sur la feuille impression

      https://www.cjoint.com/?idlFcTBcHA

      le ne sait pas si ce que je souhaite réaliser est faisable donc si tu as une autre solution qui puisse me faire avancer je suis a ton écoute
      merci de ton aide
      -1
    2. caribou38 Messages postés 31 Statut Membre
       
      j'ai consulté la base de connaissance microsoft il s'avére que c'est un bog
      je te met les info
      Vous avez un DLL ActiveX Visual Basic qui possède une méthode qui prend un tableau de Scripting Dictionary Objects comme un argument. Il peut correctement fonctionner lorsque votre client Visual Basic est exécuté dans l'environnement de développement Visual Basic intégré (IDE) en utilisant cette méthode mais lorsque vous l'exécutez en tant qu'application compilée, vous recevez le message d'erreur suivant d'exécution :
      Erreur d'exécution "-2147417848 (80010108)" :
      Méthode '~~ ' échec "d' objet"
      Cela se produit uniquement lorsque vous utilisez une liaison tardive pour appeler la méthode.

      Retour au début
      Résolution
      Utilisez la liaison anticipée pour contourner le problème.


      comme je ne suis pas trés doué en vba je vais continuer a chercher jusqu'a trouver une solution
      -1
  9. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Aucun problème pour faire ce que tu voulais, j'ai fait avec les renseignements donner.
    Si pas tout à fait ça tu dit...
    Ton classeur
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      Je te remercie beaucoup pour ton aide et surtout ta patience
      c'est exactement ca que je cherchait a faire depuis un mois sans y parvenir

      je vais encore te solliciter ta macro me recopie remplis bien le premier bon mais aprés elle m'envoie un message d'erreur "la méthode paste de l'objet a échouée" ou "la methode select class a echoué"
      -1
  10. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Fais BIEN ATTENTION aux noms des feuilles, si tu m'a mis un modèle avec les noms de feuilles différents c'est pour cela que ça plante, souvent, un espace fait la différence. Si tu teste sur mon classeur, les 2 bons sont bien copier dans impression.
    Alors cherche un peu... A toi de jouer.
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      je teste bien sur le classeur que tu m'as envoyé et j'ai toujours cette erreur
      je vais continuer a chercher
      encore merci pour ton aide qui m'as été bien plus que précieuse.
      je te tient au courant de l'évolution de la situation
      -1
      1. lermite222 Messages postés 9042 Statut Contributeur 1 199 > caribou38 Messages postés 31 Statut Membre
         
        Tu a l'erreur sur MON CLASSEUR ? si oui, tu a changer quoi ? parce que chez moi il fonctionne nickel.
        EDIT: Attend... tu l'essayerait pas sur Cjoint par hazard??? Parce que ca fonctionne pas, il faut clik droit sur le nom du fichier et le sauver sous sur ton DD, et alors là l'ouvrir.
        -1
      2. caribou38 Messages postés 31 Statut Membre > lermite222 Messages postés 9042 Statut Contributeur
         
        j'ai bien enregistré le fichier sur mon disque dur
        je me pose la question de savoir si c'est pas le fait que j'utilise une version excel 97
        ta macro fonctionne bien sur la premiere ligne mais a la suivante elle envoie l'erreur
        elle n'arrive pas a coller le bon a la suite du premier dans feuille impression
        résultat excel plante je suis obligé de faire de faire ctrl ALT supp pour pouvoir sortir

        je continu a chercher d'où peut venir le bug il n'y a pas de raison que sa fonctionne chez toi et pas chez moi

        merci encore de ton aide
        -1
  11. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Faudra bien trouver une solution..
    essaye ceci..
    '
    ---------------------------------------------
            'Copie le bon dans la page d'impression.
            FLbon.Range("A4:G19").Copy FLI.Cells(LigImp, 1)
            LigImp = LigImp + 16
    '---------------------------------------------

    Dans le bas de la macro remplace toute les lignes entre leslignes-tirets pour que ce soit comme ci-dessus, ça fonctionne aussi chez moi, j'ai pas employer cette méthode en premier parce qu'elle aussi crée quefois des prob.
    tu dit
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      j'ai toujours la même erreur
      le premier bon est recopier dans feuille impression puis cette erreur
      j'ai l'impression que c'est la variable
      Dim LigImp As Long qui pose probleme
      -1
  12. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Apparement c'est une erreur Windows.
    Un DLL ActiveX Visual Basic qui se connecte dans le journal des événements Windows NT peut provoquer des erreurs lorsqu' être appelées par un programme client exécuté en le débogueur Visual Basic. Possibles erreurs incluent :

    • Erreur 429.
    • Erreur 80010108 OLE.
    • Violation d'accès.

    Statut
    Microsoft a confirmé l'existence d'un problème dans Microsoft Transaction Server version 1.0. Nous recherchons ce problème et publierons l'information nouvelle ici nous dans la Base de connaissances Microsoft dès qu'il est disponible


    Quel est la mise à jour de windows que tu a ? PakX ?
    -1
  13. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    J'ai relu le message d'erreur que tu a donné... semblerait que c'est une erreur avec les objets.
    Remplace la ligne copy par
            Sheets("bon").Range("A4:G19").Copy Sheets("impression").Cells(LigImp, 1)

    et si ca va pas encore je changerais dans le corp de la macro

    Edit:
    Y a encore quelque chose, vérifie dans la fenêtre Projet - VBAprojet de l'IDE, si tu n'a pas le projet MoreFunc_Toolbaar
    Tu dit
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      j'ai fait les modif maintenant le message d'erreur est "impossible de lire la propriété spécialCells de la class range" erreur d'execution 1004

      j'ai une XP pro SP3 mis a jour régulierement
      non je n'est pas dans projet vba de projet toolbar

      je continu a chercher
      -1
  14. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    remet ton classeur sur Cjoint
    Edit;
    Attend.. quand Excell à planté, tu à rebooté ? sinon, fait le.
    Moi j'ai le 2000 et quand ça m'arrive je doit faire ça aussi.
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      j'ai rebooté retesté mais toujours les mêmes symptômes docteur

      je te remet le classeur j'ai laissé l'erreur pour que tu puisse la voir

      https://www.cjoint.com/?idvunZFA47
      -1
  15. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    désolé mais j'ai télécharger le classeur, j'ai clik sur le bouton et tout est OK.
    Sans ton PC je ne vois vraiment pas ce qui voir ce qui cloche.
    Vérifie encore celà..
    Dans l'IDE >> Outils >> Références
    Dans la fenêtre ouverte tu doit avoir les lignes suivante qui sont cochée..
    Visual Basic For Applications
    Microsoft Excel X.X Object Library
    Ole Automation
    Microsoft Office X.X Object Library
    Microsoft Forms 2,0 Object Library
    Si un manque, recherche le dans la liste et tu coche.
    -1
  16. caribou38 Messages postés 31 Statut Membre
     
    j'ai testé la macro sur un autre pc même résultat

    donc soit il me manque une librairie ou ma version excel est bugué
    je vais continuer a analyser la macro jusqu'a trouver ou ça bloque
    merci encore pour ton aide et ta grande patience
    je te tient au courant si du nouveau
    a+
    -1
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      tu a vérifié les référence que je donne plus haut ?
      -1
  17. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    J'ai remanier la macro et éliminer tout ce qui a trait aux objets, c'est pas un code optimisé mais probablement qu'il fonctionnera.

    https://www.cjoint.com/?iehNn0c54X
    A+
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      bonjour
      merci de ton aide je me sens gêné de te monopoliser ainsi
      tu as mon infinie gratitude
      j'ai testé la macro il y as du mieux cet fois elle fonctionne mais tant que je n'es pas vidé la feuille impression sinon rebelotte erreur
      If Cells(LigImp, 1).Interior.ColorIndex = xlNone Then Exit For

      impossible de lire la propriété interior de la class range
      merci encore de ton aide
      -1
    2. caribou38 Messages postés 31 Statut Membre
       
      j'ai modifier la maniere de recopier les bon dans la page d'impression ça a l'air de fonctionner bien que ça me copier les bon dans l'ordre décroissant

      mais faute de mieux pour l'instant

      c'est bien cette ligne qui ne passe pas chez moi va savoir pourquoi
      Copie le bon dans la page d'impression.
      Sheets("bon").Range("A4:G19").Copy Sheets("impression").Cells(LigImp, 1)
      LigImp = LigImp + 16

      je l'es remplacé par

      'Copie le bon dans la page d'impression.
      Sheets("bon").Select
      Range("A4:G20").Select
      Selection.Copy
      Sheets("impression").Select
      Rows("1:1").Select
      Selection.Insert Shift:=xlDown

      merci encore infiniment pour ton aide et c'est sincére tu m'as sorti d'une impasse un mois que je galére avec cette macro
      -1
    3. lermite222 Messages postés 9042 Statut Contributeur 1 199 > caribou38 Messages postés 31 Statut Membre
       
      Non, reprend ce classeur alors, et ajoute en dessous de...
          'il y a bien des formules pour arriver à la dernière ligne
          'remplie mais ça ne fonctionne pas quand il y a des filtres
          'qui sont activés.
          If LigImp < 1 then LigImp = 1

      Cà n'avait plus rien à voir avec les erreurs précédantes, c'est une erreur normale si LigImp =0
      Parce que ta façon de faire dans le poste suivant est pas fort...euhh
      A+
      -1
    4. caribou38 Messages postés 31 Statut Membre > lermite222 Messages postés 9042 Statut Contributeur
       
      j'ai tenté ta modif mais renouveau erreur

      c'est la manière de recopier dans la feuille impression qui ne passe pas chez moi
      2 eme point je vient de m'apercevoir que si la première cellule dans la feuille liste moteur était vide la macro s'arrete et ne va pas voir les autres cellules

      je suis entrain de voir si je peut remplacer if par each for
      qu'en penses tu
      soit indulgent avec moi je débute en macro et tu m'as aidé a progresser
      -1
    5. lermite222 Messages postés 9042 Statut Contributeur 1 199 > caribou38 Messages postés 31 Statut Membre
       
      ne change rien au for, sinon ca ira plus, pour faire un For each il te faut connaître jusqu'où aller, ce qui n'est pas possible avec tes filres.
      C'est fait exprès que ca s'arrète, il ne faut pas de ligne vide toutes les 2 lignes, c'est a cause des autofilters que tu as mis, il est difficile de connaître jusqu'ou aller, mais si tu me met un classeur un peu plus complet et réaliste je revérais cela.
      et explique à quoi sert cette formule, c'est pour cela que je n'ai pris que toutes les deux lignes..
      =NBVAL(X4;AB4;AF4;AJ4;AN4;AR4;AV4)-NBVAL(X5;AB5;AF5;AJ5;AN5;AR5;AV5)
      Je t'ai déjà posé la question mais tu n'y a pas répondu.
      La feuille moteur est-elle finie où elle peut varier au fil du temps ?
      -1
  18. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Haaaach.. Maintenant je comprend mieux, tu a changer la formule =NBVAL(X5;AB5;AF5;AJ5;AN5;AR5;AV5) qui ne fait plus référence à la ligne suivante et ta 2èm ligne est initialisée. La preuve qu'il faut donner un max de renseignements et pas érronés.
    Sub SplitData()
    Dim i As Long, e As Integer
    Dim TB
    Dim Ls
        TB = Array(16, 17, 18, 50, 22, 26, 30, 38, 42, 46)
        Ls = Array("C9", "D9", "A9", "F4")
    '---------------------------------------------
        'Largeur des colonnes
        For i = 1 To 7
            Sheets("impression").Columns(i).ColumnWidth = Sheets("bon").Columns(i).ColumnWidth
        Next i
    '---------------------------------------------
        For i = 4 To Range("AX1").SpecialCells(xlCellTypeLastCell).Row
            If Sheets("Liste moteur").Cells(i, 50) <> "" Then
               ' VideBon
                For e = 0 To 3
                    Sheets("bon").Range(Ls(e)) = Sheets("Liste moteur").Cells(i, TB(e))
                Next e
                For e = 0 To 5
                    Sheets("bon").Range("B10").Offset(0, e) = Sheets("Liste moteur").Cells(i, TB(e + 4))
                Next e
        '---------------------------------------------
                'Copie le bon dans la page d'impression.
                Sheets("bon").Select
                Range("A4:G20").Select
                Selection.Copy
                Sheets("impression").Select
                Range("A65536").End(xlUp).Offset(1, 0).Select
                Selection.Insert Shift:=xlDown
    '---------------------------------------------
            End If
        Next i
        Application.CutCopyMode = False
        Sheets("Liste moteur").Select
        Range("A1").Select
    
    End Sub


    A+
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      Merci infiniment pour ton aide cette fois la macro marche a la perfection
      encore mille excuse pour mes explications qui je te l'avoue n'étaient pas toujours claires
      Je te suis redevable et une partie de la réussite de mon stage je te la devrait

      encore merci et a +
      -1
    2. caribou38 Messages postés 31 Statut Membre
       
      excuse moi je sais que j'abuse de ta gentillesse
      je te sollicite encore voila j'ai créer avec l'enregistreur une macro mais elle n'est pas du tout optimisée

      peut tu me dire comment faire pour ne pas faire de répétition

      lBonjour,

      j'ai créer cette macro avec l'enregistreur elle fonctionne mais j'aimerais l'optimiser
      2 eme point comment éviter que la fonction find plante si elle ne trouve pas la valeur recherché

      Sub valider()
      '

      ' Macro enregistrée le 05/08/2008
      '
      Application.ScreenUpdating = False



      Sheets("BDD").Select
      Cells.Find(What:=Sheets("feuille de saisie").Range("J6").Value, After:=ActiveCell, LookIn:=xlFormulas, _
      LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
      MatchCase:=False, SearchFormat:=False).Activate


      ActiveCell.Offset(0, 1).Copy
      Sheets("feuille de saisie").Select
      Range("K17").Select
      ActiveSheet.Paste

      Sheets("BDD").Select
      ActiveCell.Offset(0, 2).Copy
      Sheets("feuille de saisie").Select
      Range("K18").Select
      ActiveSheet.Paste

      Sheets("BDD").Select
      ActiveCell.Offset(0, 3).Copy
      Sheets("feuille de saisie").Select
      Range("K19").Select
      ActiveSheet.Paste

      Sheets("BDD").Select
      ActiveCell.Offset(0, 4).Copy
      Sheets("feuille de saisie").Select
      Range("K20").Select
      ActiveSheet.Paste

      Sheets("BDD").Select
      ActiveCell.Offset(0, 5).Copy
      Sheets("feuille de saisie").Select
      Range("K21").Select
      ActiveSheet.Paste

      Sheets("BDD").Select
      ActiveCell.Offset(0, 6).Copy
      Sheets("feuille de saisie").Select
      Range("K22").Select
      ActiveSheet.Paste

      Sheets("BDD").Select
      ActiveCell.Offset(0, 7).Copy
      Sheets("feuille de saisie").Select
      Range("K23").Select
      ActiveSheet.Paste

      Application.ScreenUpdating = False

      End Sub

      merci
      -1
  19. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Comme j'ai pas tes feuilles j'ai pas su vraiment tester
    Sub valider()
    Dim RC As String
    
        Application.ScreenUpdating = False
        
        Sheets("BDD").Select
        On Error Resume Next 'si erreur sur le Finf
        Sheets("BDD").Select
        Cells.Find(What:=Sheets("feuille de saisie").Range("J6").Value, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
        On Error GoTo 0 ' annule la détection d'erreur
        
        RC = ActiveCell.Offset(0, 1).Address & ":" & ActiveCell.Offset(0, 7).Address
        Range(RC).Copy
        Sheets("feuille de saisie").Select
        Range("K17").Select
        ActiveSheet.Paste
        Application.ScreenUpdating = False
    End Sub

    A+
    -1
    1. caribou38 Messages postés 31 Statut Membre
       
      bonjour

      j'ai substituer ta macro a celle que j'avais et elle fonctionne parfaitement merci

      je te met en piece jointe mon classeur si tu as le temps d'y jeter un coup d'oeil
      certaines fonction risque de buguer car je n'est pas mis l'intégralité qui fait 4MO

      j'ai essayer de mettre les boutons qui se trouve dans les feuilles dans une barre d'outils mais sans succés
      je ne réussi qu'a faire planter l'ensemble

      deuxieme point les fonction find qui plante si pas de résultat trouvé

      merci encore pour toute l'aide que tu m'as fournie

      https://www.cjoint.com/?igo3TGgddD
      -1