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 :

Remplissage grille via UserForm


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 35
    Par défaut Remplissage grille via UserForm
    bonjour, je viens vers vous car je n'arrive pas à trouver la syntaxe VBA pour ce que je souhaite faire:
    J'ai un onglet 1 avec en Ordonné les dates et en Abscisses des horaires (9h00-10h00, 10h00-11h00, 14h00-15h00 etc...)

    J'ai également une userform qui demande un numéro (de formation afin de les classer par la suite), la date et l'heure de la dite formation.
    Je souhaiterai via les données entrées dans la UserForm remplir ma première grille

    Par exemple si je mets dans ma Userform le numéro de formation 2 au 03/03/16 de 9h00 à 10h00, je souhaiterai que le numéro de la formation se retrouve à l'intersection de la dite date et de l'horaire associé.

    J'ai repris une macro d'un collègue mais elle ne réponds pas du tout à ce que je souhaite faire: la voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Sub Remplissage_grille()
    Set x = Application.Intersect(Range("TextBox2.Value"), Range("ComboBox1.Value"))            'Détermination du champs d'éxécution de la macro
        Set c = ActiveCell                                             'redéfinition de la cellule active  en objet c (peut être omis)
        n_ligne = c.Row                                                'ligne de la cellule active dans le champs
        n_colon = c.Column                                             'colonne de la cellule active dans le champs
        Set a = Range("B" & n_ligne)                                   'selection de la date de la cellule active
        Set b = Cells(3, n_colon)                                      'selection de l'heure de la cellule active
     
        If Not Range("J4").Offset(1, 0) = "" Then i = Range("J4", Range("J4").End(xlDown)).Count Else i = 1         'i correspond au nombre de créneaux réservés /vaut 1 si aucune réservation
     
     
        If Not x Is Nothing Then                                                                                    'si le changement ne s'effectue pas en dehors de la plage alors
     
                If Not c.Value = "" Then                                                                            'si la contenu de la cellule active n'est pas vide
                Range("J" & i + 4) = c
                'Range("K" & i + 1) =
                Range("L" & i + 4) = a
                Range("M" & i + 4) = b
     
                End If
        End If
     
    End Sub
    Etant novice en VBA je me permet de compter sur vous....
    Merci d'avance
    Cl3m_

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub Placer()
        Dim Ligne As Long, Colonne As Long
        Dim Valeur
        Dim Horaire As String
        Dim dDate As Date
        Dim Recherche As Range
     
        Valeur = 5
        Horaire = "10h00-11h00"
        dDate = #2/15/2016#     'pour fins de tests
     
        'En assumant que les horaires sont en ligne 2
        Set Recherche = Sheets("Feuil1").Rows(2).Find(Horaire, LookIn:=xlValues, LookAt:=xlWhole)
        If Not Recherche Is Nothing Then Colonne = Recherche.Column
     
        'En assumant que les dates sont en colonne 1
        Set Recherche = Sheets("Feuil1").Columns(1).Find(dDate, LookIn:=xlValues, LookAt:=xlWhole)
        If Not Recherche Is Nothing Then Ligne = Recherche.Row
     
        If Ligne > 0 And Colonne > 0 Then
            Sheets("Feuil1").Cells(Ligne, Colonne) = Valeur
        End If
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 35
    Par défaut
    Bonjour,
    Merci pour ta réponse,
    Le problème est que ton code prends a partir d'une liste puis renvoi le numéro à l'intersection des horaires et de la date si je ne me trompe pas. Or mon problème est que je dois prendre les valeurs directement à partir de la Userform quand elle est remplie.
    As-tu une idée?

    Merci encore pour ta réponse.
    Cl3m_

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Je ne connais pas ton fichier ni ton Userform, mais c'est même principe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Valeur = Me.txtValeur.Value
        Horaire = Me.txtHoraire.Value
        dDate = Me.txtDate.Value 'ou CDate(Me.TxtDate) ou autre selon...
    En autant que tu retrouves les mêmes données dans tes champs du Userform et sur ta feuille...
    Mais j'ai peut-être mal compris la problématique (?)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 35
    Par défaut
    Je me trompe peut être hein! :/
    Ci-joint mon fichier:
    Onglet1: calendrier
    Onglet 2: Liste de formation (avec des numéro)
    Onglet 3: Liste de formation (Avec des lettres)

    J'ai du faire une distinction avec lettre et chiffre pour les formations car elle sont différentes (techniques et théoriques)

    Le principe est que la personne qui fait la formation arrive sur le fichier, appui sur le bouton planification( onglet1), rempli les champs du UserForm, puis ca rempli la liste correspondante, et en plus je voudrais que ca remplisse le calendrier: mettre le numéro/lettre de la formation à l'intersection de la date et de l'horaire pour cette formation. Je me disait donc qu'il était plus simple de prendre les valeurs directement a partir de la UserForm. En plus, serait-il possible que ca me renvoi un message d'erreur si la formation que l'on essaye de planifier tombe sur une formation déjà planifiée? (Je n'arrive pas avec la syntaxe principalement)

    Bref je suis pas doué pour le VBA.....

    Merci pour ton aide encore une fois.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Désolé, mais je ne peux ouvrir de fichier avec macros au bureau...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2010, 18h16
  2. [XL-2003] Modification valeurs base de données via userform
    Par Kimaos dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/05/2009, 05h29
  3. ouvrir et visualiser onglet via userform
    Par cimbra55 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/03/2009, 17h34
  4. Onkey : comment limiter accès au VBA via userform et password
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/02/2009, 13h02
  5. Insertion d'une formule via userform
    Par kedas dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/09/2007, 18h18

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