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 :

cellule ciblé par userform [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2023
    Messages : 2
    Par défaut cellule ciblé par userform
    Bonjour à tous !

    Je viens solliciter votre aide car je vous avoue je tourne un peu en rond ....

    Voici mon problème :

    J'ai créé un userform avec 2 listes modifiables, une zone de texte et un bouton

    je souhaiterais avec cet userform pouvoir cibler une cellule par le biais de 2 listes (liste 1 = lignes 11 à 33 - Liste 2 colonne F à AJ) et y insérer un champs (donné dans la zone de texte) et la valider (remplir) avec le bouton.

    Pour être plus clair dans mon tableur je fais référence à une liste de personnes et souhaite faire un pointage par jour en y indiquant le nombre d'heure travaillé...

    Merci d'avance à ceux qui pourront me mettre sur la bonne voie.

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, voilà ce que j'ai compris et comment je fais.
    J'ai créé une feuille test avec des noms de A11 jusque A33.
    J'ai mis les dates du mois de F1 à AJ1.
    J'affecte ces 2 listes de valeurs aux 2 combobox via l'évènement initialize du userform.
    Quand je fais un choix dans les 2 combobox et que j'encode une valeur dans le textbox, le bouton de validation écrit ce contenu à la ligne et colonne correspondantes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
        ' Code d'initialisation, à adapter selon tes besoins
        Me.ComboBox1.List = Application.WorksheetFunction.Transpose(Sheets("Feuil1").Range("A11:A33").Value)
        Me.ComboBox2.List = Application.WorksheetFunction.Transpose(Sheets("Feuil1").Range("F1:AJ1").Value)
    End Sub
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Private Sub CommandButton1_Click()
        ' Code exécuté lorsqu'on clique sur le bouton Valider
     
        ' Vérifier si une personne et une date sont sélectionnées
        If ComboBox1.ListIndex = -1 Or ComboBox2.ListIndex = -1 Then
            MsgBox "Sélectionnez une personne et une date avant de valider.", vbExclamation
            Exit Sub
        End If
     
        ' Récupérer les indices sélectionnés dans les listes
        Dim rowIndex As Long
        Dim columnIndex As Long
     
        rowIndex = ComboBox1.ListIndex + 11 ' Ajouter l'offset de la première ligne
        columnIndex = ComboBox2.ListIndex + 6 ' Ajouter l'offset de la première colonne (F)
     
        ' Récupérer le nombre d'heures depuis la zone de texte
        Dim heuresTravaillees As Double
        On Error Resume Next ' Gestion des erreurs si la conversion échoue
        heuresTravaillees = CDbl(TextBox1.Value)
        On Error GoTo 0 ' Rétablir la gestion des erreurs par défaut
     
        If heuresTravaillees = 0 Then
            MsgBox "Entrez un nombre valide d'heures travaillées.", vbExclamation
            Exit Sub
        End If
     
        ' Insérer le nombre d'heures dans la cellule correspondante
        With Sheets("Feuil1") ' Remplace par le nom de ta feuille
            .Cells(rowIndex, columnIndex).Value = heuresTravaillees
        End With
     
        ' Effacer les sélections et le contenu de la zone de texte
        ComboBox1.ListIndex = -1
        ComboBox2.ListIndex = -1
        TextBox1.Value = ""
     
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2023
    Messages : 2
    Par défaut
    Bonjour Franc et un grand merci à toi !!

    J'ai intégré le code sur mon fichier mais j'ai un code erreur 70, j'ai fait le test sur un fichier vierge et cela fonctionne à merveille et tu as tout a fait compris ma demande !
    Je vais rebalayer mon fichier pour trouver l'erreur (débogage)

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 24/07/2018, 10h16
  2. [XL-2013] Figer un cellule ciblée par une formule même après insertion
    Par Thonio64 dans le forum Excel
    Réponses: 6
    Dernier message: 21/02/2018, 15h39
  3. [XL-2007] Mise en forme de texte dans cellule renseignée par userform
    Par Jimmatdycol dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/01/2018, 23h39
  4. [VBA-E]Remplir des cellules vides par des 0
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/03/2006, 13h58
  5. Récupérer la couleur d'une cellule excel par Delphi
    Par teamsebracing dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 05/06/2003, 14h50

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