Userform- Excel

Marie -  
leplot Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voila j'ai un fichier Excel qui est remplis par plusieurs employés, et j'ai fait via VBA un userform avec le prénom des différents employé, et lorsqu'un employé clic sur son nom ça l'emmene sur le fichier Excel à un endroit particulier par exemple ligne 50, mais enfin de compte j'aimerais que lorsque l'employé clic sur son nom ça l'emmene à la dernière ligne qu'il a remplis (sachant que les employés inscrivent leurs noms sur le fichier à chaque ligne qu'ils remplissent).

Je sais pas si c'est bien clair,

Merci d'avance
Configuration: Windows XP
Firefox 3.0.8

14 réponses

  1. qmike Messages postés 1599 Date d'inscription   Statut Membre Dernière intervention   594
     
    bonjour
    en Vba
    pour la denière ligne
    Range("A65536").End(xlUp).Select
    0
  2. Marie
     
    Oui, mais pas la dernière ligne rempli du fichier, mais la dernière ligne qu'a rempli l'employé concerné:
    Car les employés n'écrivent pas leurs données les uns à la suite, en effet c'est par bloc

    Par exemple au début j'avais fait ligne 1: exploitant jean
    ligne 1500: exploitant pierre
    ligne 3000: exploitant paul

    Donc quand pierre clic sur son nom ça l'emmene à la ligne 1500, mais la j'aimerais que ça l'emmène à la dernière ligne qu'il a remplis.

    Je sais j'ai un peu du mal à m'expliquer, désolé!!

    Merci
    0
  3. leplot Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   131
     
    Bonjour,

    pour rester sur l'idée de qmike :
    Range("A2999").End(xlUp).Select

    Il faut pointer sur la dernière ligne du bloc de l'exploitant (ici 2999 s'il a de 1500 à 2999).
    En récupérant cette valeur en variable, cela donne

    FinduBloc = 2999 (en fonction de l'exploitant)
    Range("A" & FinduBoc).End(xlUp).Select

    J'ai pas testé mais je pense que cela fonctionne.

    0
  4. Marie
     
    Oui mais je ne sais pas combien de ligne il y aura exactement par exploitant (enfin combien un exploitant remplira de ligne), car il peut en rajouter....
    Mon nombre de ligne est un ordre de grandeur....
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. leplot Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   131
     
    RE,

    comment définis-tu le début d'un bloc ?
    Si tu dis que Y commence à 3000 cela veut dire que X fini à 2999.
    Donc si tu définis pour chaque exploitant un début (1500) et une fin (2999), tu peux utiliser la formule.
    W   1            1499
    X    1500       2999
    Y    3000       4499
    Z    4500       5999
    ...
    


    Si les blocs ne sont pas définis en longueur, je ne vois pas comment tu peux définir le bloc suivant.
    0
  7. Marie
     
    Je fais en gros car je ne sais pas combien de lignes ils vont rentrer chacun, donc c'est pour ça que j'aimerais que lorsqu'il clic sur leur nom ça les emmène à leur dernières lignes, mais je ne peux pas faire une fonction avec leur prénom? vu qu'ils inscrivent leurs prénom à chaque fois
    0
  8. qmike Messages postés 1599 Date d'inscription   Statut Membre Dernière intervention   594
     
    oui
    ne valait-til pas mieux un onglet par utilisateur ??
    0
  9. Marie
     
    Non parce qu'à partir de ce fichier je calcul le taux de service des différents transporteurs et il me faut l'ensemble des données... mais es possible ce que je veux faire??
    0
  10. leplot Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   131
     
    SSalut,

    je reviens sur ton problème avec une solution Excel

    {=MAX(SI(Liste=C1;LIGNE(Liste)))} (formule matricielle à valider avec MAJ+CTRL+ENTREE)
    avec :
    "Liste" la liste contenant les prénoms (par exemple $A$1:$A$65356)
    C1 : la cellule contenant le prénom cherché.

    Tu mets cette formule dans un coin de ta feuille ou dans une feuille séparée et tu fais référence à cette cellule dans ton code.

    Pour chercher directement dans ton code, je vais voir pour faire une boucle et je reviens.
    0
  11. leplot Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   131
     
    Re,

    Sub Test()
        Dim i, DernièreLigne, LigneCherchée
        Dim Prénom
        Prénom = "LePlot"
        
        'si le prénom n'est pas trouvé la variable sera égale à "Absent"
        LigneCherchée = "Absent"
        
        'recherche de la dernière ligne remplie pour accélérer la recherche
        DernièreLigne = Range("A65536").End(xlUp).Row
        
        ' test de toutes les lignes en remontant
        For i = DernièreLigne To 1 Step -1
            If Range("A" & i) = Prénom Then
                ' le prénom est trouvé, la variable est égale à la ligne
                LigneCherchée = i
                Exit For
            End If
        Next i
    End Sub
    


    0
  12. Marie
     
    Salut,

    Merci pour ta réponse, mais je ne comprends pas tout.... En effet, je ne comprends pas ou je dois mettre la deuxième programmation que tu m'as écrites (je la mets à part ou dans la programmation de mon bouton???....) désolé je ne suis pas très douée..... :-(
    0
  13. leplot Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   131
     
    Salut,

    Il faut intégrer le code dans ton bouton. Il sert à définir la dernière ligne de l'employé.
    Il faut donc écrire en DernièreLigne +1
    Il faut adapter le code avec les bonnes variables par rapport à ton code (changer la variable "prénom" par exemple)
    0
    1. Marie
       
      Oui, mais ce qui me parrait bizzare c d'écrire dans mon code "dernièreLigne.... je l'écris comme ça et "Prénom", ne prend pas peur je t'ais prévenu de mon niveau.....
      0
  14. leplot Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   131
     
    Re

    J'ai utilisé des variables sans connaître les tiennes.
    Envoie-moi une copie de ton code je l'adapterai
    0
    1. Marie
       
      désolé j'avais pas vu que tu m'avais répondu j'étais en réunion, je peux t'envoyé mon fichier pour que tu vois nan! il me semble que se serai plus simple, mais es-ce que tu as une adresse perso parce que je n'ais pas trop envie de laisser mon fichier sur le forum?
      0
  15. leplot Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   131
     
    leplot@neuf.fr
    0