VBA excel fermer userform

Résolu
lostmain58 Messages postés 31 Statut Membre -  
lostmain58 Messages postés 31 Statut Membre -

Bonjour,

voila mon soucis, j'ai fais un userform dans lequel j'ai implanté tout les différente feuille que j'ai. Maintenant je suis bloquer sur le faite de dire au programme que dés l'instant ou l'utilisateur appuis sur le bouton correspondant à une feuille, le userform ce ferme et ouvre une inputbox demandant "quelle est le numero de la pièce" puis de selectionner la ligne où se trouve les numéro de la pièce.

Pouvez vous m'aider

Merci

5 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     

    Re,

    je ne comprend pas le erreurs.

    Ben Laquelle?

    Vous n'avez pas adapte la colonne: vous c'est A pas B et pas mis l'inputbox

    Si vous avez beaucoup de lignes, vous avez opte pour l'execution la plus longue

    1
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     

    Bonjour,

    Voir ici


    0
    1. lostmain58 Messages postés 31 Statut Membre 3
       

      bonjour,

      Merci pour le lien il est super utile.

      j'ai donc fais un programme ci dessous, il sélection bien la bonne ligne mais j'ai plusieurs ligne que ou le même numéro. j'aimerai que mon programme sélectionne la dernière ligne qui correspond a la valeur demandé précédemment. je suis complètement bloqué ici.

      Public Sub CommandButton1_Click()
      Sheets(2).Activate
          Unload UserForm1
              NumPS = InputBox("Que voulez-vous rechercher ?")
       
                  Set a = Range("A:A").Find(NumPS, lookat:=xlWhole)
       
              If Not a Is Nothing Then
      
      
              a.EntireRow.Select
         End If
       
      End Sub
      0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     

    Bonjour a tous

    Deux facons de voir. Adaptez a votre contexte

    'boucle en partant du haut mais seulement sur les lignes avec valeur Num 
    Sub test()
        Num = 2
        Nb = Application.CountIf(Columns(2), Num)       'nombre de fois Num existe
        If Nb > 0 Then
            lig = 2     'ligne de depart
            'Boucle  du nombre de fois pour trouver la derniere ligne de avec valeur Num
            For n = 1 To Nb
                lig = Columns(2).Find(Num, Cells(lig, 2), , xlWhole).Row        'ligne
            Next n
            Rows(lig).Select
        End If
    End Sub
    
    'boucle sur toutes les lignes
    Sub test1()
        Num = 2
        Nb = Application.CountIf(Columns(2), Num)       'Num existe?
        If Nb > 0 Then
            Derlig = Range("B" & Rows.Count).End(xlUp).Row  'derniere ligne de la colonne
            NL = Derlig     'affectation pointeur de ligne
            'boucle inverse de bas en haut
            Do While NL <> 2
                If Cells(NL, 2) = Num Then
                    Exit Do
                End If
                NL = NL - 1
            Loop
            Rows(NL).Select
        End If
    End Sub
    
    0
    1. lostmain58 Messages postés 31 Statut Membre 3
       

      Bonjour,

      j'ai essayer les deux programme, je n'arrive pas a les faire fonctionner, excusez moi je suis vraiment un très gros débutant en vba, voila le programme que j'ai implanter dans le mien, je ne comprend pas le erreurs.

      Dim NumPS 'numero de commande
      
      
      Sub CommandButton1_Click()
      Sheets(2).Activate
          Unload UserForm1
              NumPS = InputBox("entrer le numero de PS")
          Num = 2
          Nb = Application.CountIf(Columns(2), Num)
          If Nb > 0 Then
              Derlig = Range("B" & Rows.Count).End(xlUp).Row
              NL = Derlig
              Do While NL <> 2
                  If Cells(NL, 2) = Num Then
                      Exit Do
                  End If
                  NL = NL - 1
              Loop
              Rows(NL).Select
          End If
      
      End Sub
      0
    2. lostmain58 Messages postés 31 Statut Membre 3 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       

      j'ai déjà fais ça mais la ligne ne ce sélectionne pas et merci pour ta sympathie...

      1
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > lostmain58 Messages postés 31 Statut Membre
       

      Montre alors ton code adapté.

      1
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > lostmain58 Messages postés 31 Statut Membre
       

      as-tu fait une recherche sur countif?

      c'est équivalent à la fonction =nb.si().

      1
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > lostmain58 Messages postés 31 Statut Membre
       

      as-tu exécuté le code pas à pas?

      tu peux aussi ajouter des msgbox pour comprendre ce que fait le code.

      1
  4. lostmain58 Messages postés 31 Statut Membre 3
     

    Derniere petite question je peux inserer un code qui permet de dire contient au lieu de doit avoir dans cette colonne?


        nb = Application.CountIf(Columns(1), NumPS)

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      peux-tu donner un exemple?

      0
      1. lostmain58 Messages postés 31 Statut Membre 3 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        par exemple j'ai une pièce qui s'appelle PS708541_00 et je marque juste PS708541 dans le inputbox 

        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > lostmain58 Messages postés 31 Statut Membre
         

        alors, pour le countif, je ferais 

        CountIf(Columns(2), NumPS & "*")

        j'ajouterais

        dim lnum as integer
        lnum = len(NumPS)

        et je changerais le test

        left(Cells(LL, 2),lnum) = NumPS
        1
      3. lostmain58 Messages postés 31 Statut Membre 3 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        sa marche a la perfection merci beaucoup, et encore désolé pour le peu de compétence que j'ai, je vais mis mettre a fond.

        Bonne fête de fin d'année 

        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     

    Bonjour yg_be

    lostmain58:

    C'est même chose, il faut toujours faire un test. Countif donne un nombre de fois ou zéro, ensuite test et vous en faites ce que vous voulez

    0
    1. lostmain58 Messages postés 31 Statut Membre 3
       

      je vais essayer merci

      0