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 d'incrémentation par rapport à un nom. [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Par défaut Problème d'incrémentation par rapport à un nom.
    Bonsoir,

    Je vais essayer d'être le plus clair possible, malgré mon niveau peu élevé en programmation.

    Tout d'abord, je dispose d'un userform comprenant :

    - Une combobox nommée " NomPrénom" contenant le nom et prénom d'élèves situés sur la feuille Liste élèves

    - Une textbox nommée "Textbox2" comprenant 1 chiffre (on y reviendra)

    - Une feuille nommée Code comprenant une colonne A (Numéro) ainsi qu'une colonne B (Nom et Prénom)

    Mon problème est le suivant :

    Je souhaite, qu'en cliquant sur un des noms de la combobox, la textbox affiche le chiffre correspondant à ses venues au code. Autrement dit, si le nom sélectionné n'est jamais allé au code le chiffre qui sera affiché sera 1, s'il est déjà venu le chiffre sera donc 2 etc.

    Je souhaite par la suite que ce chiffre soit répertorié dans la feuille Code, à côté du nom correspondant. Autrement dit, à chaque fois qu'une personne ira au code une nouvelle ligne sera créée avec son nom mais un chiffre différent qui indiquera le nombre de fois où il a assisté à une séance.

    J'ai bien essayé de me creuser les méninges et de chercher diverses pistes, cela ne marche pas. Mon code du moment se résume à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    With Sheets("code")
        For i = 7 To .[A65536].End(xlUp).Row
            If NomPrénom.Text = .Cells(i, 2).Text Then
            TextBox2.Value = .Cells(i, 1).Value + 1
            Else
            TextBox2.Value = 1
            End If
        Next
     
    End With
    J'espère trouver réponse à mon problème, merci d'avance et désolé si je ne suis pas très clair

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour

    Non ce n'est pas très clair tout du moins sur la finalité.

    Tu as une feuille avec une colonne nom prenom ok.
    Dans cette même feuille tu as : des codes.

    Ta combo se remplit certainement avec la colonne où se trouvent les noms prénoms, ça OK, mais le reste je ne comprends pas très bien.

    Il te serait hyper facile de retrouver la ligne du nom prénom de la combo sur la feuille en utilisant les fonctions find et find next accompagnées d'un offset.

    Quand tu es dans l'editeur vba tape sur la touche "F1" ensuite dans la textbox de recherche tape "find".

    • Choisi la "fonction exemple"
    • Descend en bas de cette page tu as une demo


    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Par défaut
    Bonjour,

    Tout d'abord merci de m'avoir répondu Patrick !

    J'ai créé un fichier exemple qui pourra peut-être t'aider à comprendre mes explications un peu vagues.

    La finalité souhaitée est la suivante :

    A chaque fois qu'un élève passe une série de code, on l'ajoute via un Userform (série passée, heure, nombre de fautes etc).

    Si c'est la première fois que l'élève vient le chiffre 1 sera affiché dans une textbox à l'intérieur du Userform, chiffre qui sera renvoyé dans une feuille à côté de son nom. Mon but est, pour un nombre d'élèves donné, d'avoir les chiffres correspondant à leurs venues au code afin de savoir combien de fois l'élève est déjà venu, histoire de faire le point.

    Bon dimanche et merci je vais essayer de me pencher sur les fonctions find et find next !
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si j'ai bien lu, tu souhaites avoir dans TextBox2, le nombre de fois qu'un élève est passé à l'épreuve +1.
    Si c'est bien ce que j'ai compris, une solution serait d'utiliser en VBA la fonction COUNTIF.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim rngNom As Range
     Set rngNom = ThisWorkbook.Worksheets("code").Range("B2:B50")
     TextBox2.Value = Application.WorksheetFunction.CountIf(rngNom, NomPrénom.Text) + 1
    La variable rngNom est une variable objet de type Range qui dans cet exemple fait référence à la plage B2:B50 de la feuille [code] du classeur où se trouve le code VBA
    La ligne 1 du code devrait se trouve dans la zone de déclaration (avant les autres procédures) et la ligne 2 idéalement devrait se trouver par exemple dans la procédure événementielle UserForm_Initialize
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Par défaut PB résolu grâce à la fonction COUNTIF
    Bonsoir,

    Un grand merci Philippe ça marche exactement comme je le souhaite.

    Bonne soirée à toi, merci encore !!

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

Discussions similaires

  1. choix Editor par rapport au nom de fichier
    Par Aurelien Pupier dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 02/07/2008, 15h06
  2. Réferencement google par rapport au nom de domaine
    Par yuyu599 dans le forum Référencement
    Réponses: 2
    Dernier message: 27/03/2008, 15h52
  3. Considérations légales par rapport au nom du projet
    Par SaumonAgile dans le forum Dreamshield
    Réponses: 1
    Dernier message: 31/08/2007, 16h43
  4. Nom du fichier font par rapport au nom de la FONT
    Par sergior77 dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/11/2006, 16h48
  5. Problème alignement image par rapport au texte
    Par finalfx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 23/05/2006, 08h12

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