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 :

Récupérer des données dans un Userform en cliquant sur une cellule


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
    Autre
    Inscrit en
    Mars 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 51
    Par défaut Récupérer des données dans un Userform en cliquant sur une cellule
    Bonjour, j’ai des cellules dans un tableau qui contiennent les données sous le format suivant :

    Nom : Capture d’écran 2022-08-30 à 19.42.04.png
Affichages : 205
Taille : 10,1 Ko


    Nom : Capture d’écran 2022-08-30 à 19.43.01.png
Affichages : 204
Taille : 40,4 Ko


    J’aimerai, en double cliquant sur la cellule, faire apparaître un Userform muni de différentes textbox dans lesquelles s’afficheront le 12, le 00, la phrase 1-VOLTIGE, le 2 de FH, le 1 de FC, le 4 de LDG, le 14 et le 00.
    De cette manière, une fois toutes les données remplies, le bouton Création se dégrise et si je peux modifier les données via ce même Userform pour les réinscrire dans cette même cellule.

    J’ai beau réfléchir, à part avoir le cerveau en ébullition, moi je sèche 😞

    Merci pour vos retours. 👍🏻

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2022
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2022
    Messages : 141
    Par défaut
    Essayer ce code :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Sub extraction()    'Tony4152_20220830
        Dim myStr As String
        Dim vct() As String
        Dim pos, pos1, pos2 As Long
     
        'Vous devez stocker le contenu de votre cellule dans la variable "myStr"
        'Exemple : myStr = ThisWorkbook.Sheets("Feul1").Range("A1")
        'Ici, j'ai mis le contenu de votre exemple dans la variable "myStr"
     
        myStr = "12H00Z1-VOLTIGE2FH1FC4LDG14H00Z"
        'Récupérer le 12, le 00, la phrase 1-VOLTIGE, le 2 de FH, le 1 de FC, le 4 de LDG, le 14 et le 00
     
        ReDim vct(7)
        'récupérer le 12
        vct(0) = IIf(Asc(Mid(myStr, 1, 1)) > 47 And Asc(Mid(myStr, 1, 1)) < 58, Left(myStr, 1), "")
        vct(0) = vct(0) & IIf(Asc(Mid(myStr, 2, 1)) > 47 And Asc(Mid(myStr, 2, 1)) < 58, Mid(myStr, 2, 1), "")
        vct(0) = vct(0) & IIf(Asc(Mid(myStr, 3, 1)) > 47 And Asc(Mid(myStr, 3, 1)) < 58, Mid(myStr, 3, 1), "")
     
        'récupérer le 00
        pos = InStr(1, myStr, "H") + 1
        vct(1) = IIf(Asc(Mid(myStr, pos, 1)) > 47 And Asc(Mid(myStr, pos, 1)) < 58, Mid(myStr, pos, 1), "")
        vct(1) = vct(1) & IIf(Asc(Mid(myStr, 1 + pos, 1)) > 47 And Asc(Mid(myStr, 1 + pos, 1)) < 58, Mid(myStr, 1 + pos, 1), "")
     
        'récupérer le texte
        pos1 = pos + 3
        pos2 = InStr(1, myStr, "FH") - 1
        vct(2) = Mid(myStr, pos1, pos2 - pos1)
     
        'récupérer le 2 de FH
        vct(3) = Mid(myStr, pos2, 1)
     
        'récupérer le 1 de FC
        vct(4) = Mid(myStr, InStr(1, myStr, "FC") - 1, 1)
     
        'récupérer le 4 de LDG
        vct(5) = Mid(myStr, InStr(1, myStr, "LDG") - 1, 1)
     
        'récupérer le 14
        pos = InStrRev(myStr, "H") - 2
        vct(6) = IIf(Asc(Mid(myStr, pos, 1)) > 47 And Asc(Mid(myStr, pos, 1)) < 58, Mid(myStr, pos, 1), "")
        vct(6) = vct(6) & IIf(Asc(Mid(myStr, pos + 1, 1)) > 47 And Asc(Mid(myStr, pos + 1, 1)) < 58, Mid(myStr, pos + 1, 1), "")
     
        'récupérer le 00
        pos = InStrRev(myStr, "H") + 1
        vct(7) = IIf(Asc(Mid(myStr, pos, 1)) > 47 And Asc(Mid(myStr, pos, 1)) < 58, Mid(myStr, pos, 1), "")
        vct(7) = vct(7) & IIf(Asc(Mid(myStr, pos + 1, 1)) > 47 And Asc(Mid(myStr, pos + 1, 1)) < 58, Mid(myStr, pos + 1, 1), "")
     
        Debug.Print , vct(0), vct(1), vct(2), vct(3), vct(4), vct(5), vct(6), , vct(7)
        'Il ne vous reste plus qu'à injecter les valeurs ci-dessus dans les cellules liées aux textboxes de votre formulaire pour les afficher
        'dans votre formulaire où vous pouvez les éditer.
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 51
    Par défaut
    Bon diou de bon diou !

    À la dixième ligne je dois déjà prendre un verre pour m’en remettre. 🫣
    Je vais tester tout cela demain et je vous tiens au courant.
    Les explications sous forme de ‘REM vont m’être utile.
    Un grand merci, je vous réponds demain soir sans faute.

    Merci pour ce soutien Belga16 👍🏻🍻

  4. #4
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 51
    Par défaut
    Bonjour Belga16,

    Je reviens à la charge pour vous confirmer votre macro, en effet cela fonctionne mais aujourd'hui on est venu me mettre de nouvelles données dans les pattes.
    des cases ont été rajoutées et au maximum, voilà ce qu'elles peuvent contenir :

    Nom : Capture d’écran 2022-09-01 à 17.54.48.png
Affichages : 170
Taille : 15,4 Ko

    ce qui donne

    Nom : Capture d’écran 2022-09-01 à 17.54.55.png
Affichages : 174
Taille : 15,9 Ko

    tout comme je peux avoir ceci :

    Nom : Capture d’écran 2022-09-01 à 17.56.13.png
Affichages : 169
Taille : 9,0 Ko

    ce qui donne

    Nom : Capture d’écran 2022-09-01 à 17.56.20.png
Affichages : 174
Taille : 6,2 Ko

    En gros, lorsque toutes les lignes sont occupées j'ai dans ma case :

    - Heures et minutes de décollage (ou juste la flèche, le H et le Z comme dans le deuxième cas)
    - Numéro de mission entre parenthèse (si pas de numéro seule les parenthèses restent comme sur le deuxième cas)
    - Type de mission (un numéro, un tiret et un nom comme Acrobatie, transport passagers, etc) ou vide
    - La destination (en général un nom de ville) ou vide
    - Les remarques éventuelles comme dans le 1er cas entre parenthèses (Pas de harnais) ou si pas de remarque, ligne vide
    - le nombre de FH et de FC (ou vide, dans ce cas ne reste que FH FC comme dans le deuxième cas)
    - le nombre de LDG (ou vide, dans ce cas pas de LDG marqué, la ligne est vide)
    - Heures et minutes de posé (ou juste la flèche, le H et le Z comme dans le deuxième cas)

    Je vous avoue avoir encore du mal à comprendre votre macro qui fonctionne pour le cas précis que j'avais évoqué,
    mais en même temps je ne m'attendais pas à avoir ce genre de demande aujourd'hui.
    J'ai passé ma journée à tenter d'adapter votre macro aux nouvelles demandes mais à part un mal de tête, je n'ai rien obtenu.

    Je n'en suis qu'aux balbutiements mais je vais progresser tout doucement.
    En espérant vous lire prochainement, je vous souhaite une excellente soirée.

  5. #5
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 521
    Par défaut
    Bonjour le fil,
    Un petit fichier anonymisé serait le bienvenue,

  6. #6
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Autre
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 51
    Par défaut
    Je vais voir ça.
    Je le prépare pour ce week-end 👍🏻

Discussions similaires

  1. [XL-2013] Créer et ouvrir userform en cliquant sur une cellule.
    Par BAYRAL dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/03/2017, 17h18
  2. [RegEx] Récupérer des données dans une page Web
    Par Pragmateek dans le forum Langage
    Réponses: 8
    Dernier message: 24/05/2006, 20h44
  3. Réponses: 2
    Dernier message: 16/01/2006, 20h34
  4. Récupérer des données dans une page HTML
    Par newdelirium dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2005, 20h18
  5. Récupérer des données dans excel
    Par alexia2 dans le forum MFC
    Réponses: 1
    Dernier message: 19/05/2005, 16h34

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