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 :

Créer un fichier de validation de compétences [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut Créer un fichier de validation de compétences
    Bonjour,
    Je souhaite créer une macro sous VBA avec Excel 2010.
    Le principe c'est de cliquer sur la cellule Check, on récupère le numéro de la ligne et colonne et on ouvre un formulaire pour de 4 Boutons de pourcentage (0, 25, 50 et 100%) et une zone de saisie pour le temps de formation pratique.
    En fonction du bouton appuyé, on vient recopier dans la cellule de destination le pourcentage et le temps de formation cumulé.

    Listes des compétences		Check		PROGRESSION	TEMPS Formation Minutes
    Compétences n°1			26/02/2016	25%		25
    Compétences n°2					0%	
    Compétences n°3					0%	
    Compétences n°4					0%	
    Compétences n°5					0%
    Le but est d'éviter de créer une formulaire pour chaque compétences mais d'utiliser le même formulaire.

    Etant débutante en VBA, je sais pas si je peux créer une variable générique pour l'utiliser à chaque appel du formulaire. J'utilise cette fonction pour appeler le formulaire (quand j'appuie sur la colonne 2) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
     If Target.Column = 2 Then UserForm1.Show
     
    End Sub
    Merci d'avance de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Simplement, dans l'initialisation du userform (Private Sub UserForm_Activate), utilise "Target.Row" et "Target.Column" pour récupérer la ligne et la colonne.
    Si ce n'est pas clair, n'hésite pas à demander des précisions.

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut
    Merci pour votre réponse mais je ne comprends pas tout. Je dois les déclarer à quel endroit mes variables globales ?
    J'ai fais comme ca mais ca me dit Objet Requis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserForm_Activate()
        Dim Ligne As Integer
        Ligne = Target.Row
        Dim Colonne As Integer
        Colonne = Target.Column + 2
    End Sub
     
    Private Sub CommandButton1_Click() 'Bouton 100% par exemple
     
    Range.Cells(Ligne, Colonne).Value = "100%"
     
    Unload UserForm1
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Oups, au temps pour moi.

    Les variables globales sont en tête d'un module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public Ligne As Long, Colonne As Integer
    La macro événementielle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Target.Column = 2 Then
            Ligne = Target.Row
            Colonne = Target.Column
            UserForm1.Show
        End If
    End Sub
    Le code dans le userform :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton1_Click()
        Cells(Ligne, Colonne).Value = "100%"
        Unload UserForm1
    End Sub
    C'est tout.

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut
    Merci beaucoup, ca marche comme je le voulais !!

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

Discussions similaires

  1. [XL-2007] Créer une liste de validation à partir de données contenues dans un autre fichier
    Par familledacp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/10/2011, 18h03
  2. impossible de créer une fichier ade
    Par funkyjul dans le forum Projets ADP
    Réponses: 2
    Dernier message: 25/08/2011, 15h48
  3. Comment créer une classe de validation avec un paramètre?
    Par Cecile5 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 10/11/2009, 10h29
  4. Créer une clé de validation pour son programme.
    Par christophertux dans le forum C#
    Réponses: 2
    Dernier message: 11/08/2009, 15h11
  5. Comment créer une fichier
    Par fraisa1985 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 08/05/2008, 11h53

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