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 :

Recuperer la valeur d'une texbox sans les guillemets en vu d'une ligne de code variable [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Octobre 2011
    Messages : 75
    Points : 0
    Points
    0
    Par défaut Recuperer la valeur d'une texbox sans les guillemets en vu d'une ligne de code variable
    Bonjour,

    Je me rapproche de vous après quelques semaines d'essai infructueuses dans mon coin tout seul alone.

    J'ai balayé le net et cherché une solution à mon problème sans y arriver.

    Mon problème : compéter une feuille Excel grâce à une seconde feuille

    Le soucis est que les cellules sources et cibles ne sont jamais les mêmes, c'est pour cela que je voulais passer pas

    un USF et y indiquer les paramètres avant de lancer ma macro de récupération.

    Un bout de code serait plus compréhensible peut être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    With Worksheets(Sh_Source)
            Set Rg = .Range("B1:B" & .Cells(.Rows.Count, "B").End(xlUp).Row)
        End With
     
        With Rg
            Set Trouve = .Find(What:=ActiveCell.Value, LookIn:=xlValues, LookAt:=xlWhole, _
                               SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
            'Si la méthode "find" a trouvé
            If Not Trouve Is Nothing Then
     
                ActiveCell.Offset(0, -1).Value = Trouve.Offset(0, -1).Value
    Dans cette partie de code, la partie (0,-1) evolue et donc si je prend l'information depuis une

    textbox, il y ajoute des guillemets : ActiveCell.Offset("0, -1").Value et ça ne marche pas

    Idem pour Set Rg, comment y faire évoluer la colonne de recherche sans y avoir les guillemets

    imposées à la recuperation de la valeur d'une autre textbox ??

    Je suis certain que ce qui est clair pour moi, ne l'est pas forcement pour tous le monde.

    N'hésitez pas à mon poser toutes les questions possibles, je suis vraiment en peine de trouver tout seul la soluce.

    Merci d'avance et bonne fin de journée.

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Salut NulenExcel77,

    J'ai un peu du mal à comprendre en effet.

    En fait, c'est la colonne qui varie, c'est ça ?

    Pourquoi ne pas demander à l'utilisateur tout simplement d'écrire dans la TextBox le numéro de la colonne ? A moins que ça soit la colonne XDV, je pense que ca ne devrait pas poser de problème et ainsi récupérer cette donnée que tu mettre comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Offset(0, num_from_txbx)
     
    Set Rg = .Range(Cells(1, num_from_txbx), .Columns(num_from_txbx).Find("*", , , , , xlPrevious)
    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour,

    pour le Set Rg c'est simple, suffit d'utiliser soit la lettre soit le numéro de colonne et la propriété Cells

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Rg = Range(.Cells(1, Col), .Cells(.Rows.Count, Col).End(xlUp))

    Quant à l'Offset, utiliser la fonction Split pour séparer les valeurs …

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                                       SP = Split(TextBox, ",")
    ActiveCell.Offset(SP(0), SP(1)).Value = …
    Si besoin, la fonction Val (et elle n'est pas la seule !) convertit une chaine en nombre …

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Octobre 2011
    Messages : 75
    Points : 0
    Points
    0
    Par défaut
    Salut Kimy_Ire & Marc-L,

    Merci de vous pencher sur mon problème.

    Kimy_Ire, la base de donnée est figée et les feuilles à compléter sont de structure différentes.

    Je fais donc évoluer la macro en ce sens grâce à un USF et ses Textbox afin de choisir

    les cellules de destinations.

    Je prépare vite fait mal fait un classeur exemple et je te donne ça.

    Marc-L, ça parait tout simple quand tu le dis comme ça , je décortique ton idée et vais essayer de l'adapter

    à ma macro, comme mon pseudo l'indique, je suis encore débutant en Excel, mais je trouve ces casse-tête

    super intéressant et jouissif quand la compréhension arrive.

    @ bientôt

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Octobre 2011
    Messages : 75
    Points : 0
    Points
    0
    Par défaut
    Salut Kimy_Ire & Marc-L,

    Merci Marc-L pour ton aide ,j'ai changé ma ligne "Set Rg" avec ce que tu m'a proposé et ça marche nickel je peux maintenant
    indiquer la zone de recherche.

    Par contre , la 2° partie sur l'offset
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SP = Split(TextBox, ",")
    ActiveCell.Offset(SP(0), SP(1)).Value = …
    je suis un peu perdu, que viennent faire les chiffres 0 et 1 dans ton code ??
    J'ai essayé de l'incérer tel quel (on sait jamais) et rien, je n'ai pas su l'adapter .

    Peux tu me l'expliquer comme si j'avais 2 ans (réplique d'un film, devinez lequel )

    Voici un classeur (très simple) afin de vous faire comprendre (j'espère) ce que je souhaiterai faire.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    D'après la demande initiale, c'est pour séparer le texte "0,-1" :

    si SP = Split("0,-1") alors SP(0) contient "0" et SP(1) contient "-1" … (voir l'aide de Split)
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Octobre 2011
    Messages : 75
    Points : 0
    Points
    0
    Par défaut
    Youpi, j'arrive encore à réfléchir

    Je me suis donc intéresser à la fonction Split et je pense l'avoir assimilé.

    J'ai fusionner 2 variable , puis j'ai choisi la valeur voulu grace à "Split"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cell_Cible = CompleteInfo.TextBox2.Value & "," & CompleteInfo.TextBox3.Value & "," & CompleteInfo.TextBox4.Value & "," & CompleteInfo.TextBox5.Value
    puis ai changé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Offset(0, -1).Value = Trouve.Offset(0, -1).Value
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SP = Split(Cell_Cible, ",")
     
                ActiveCell.Offset(SP(0), SP(1)).Value = Trouve.Offset(SP(2), SP(3)).Value
    Je peux ainsi choisir les adresses source et cible avec l'usf sans avoir à changer la macro.

    Encore Merci à toi et bonne journée

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

Discussions similaires

  1. [XL-2003] Modifier les propriétés taille d'une Texbox sans écraser sa valeur
    Par PPN83 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/11/2010, 20h10
  2. [OC]Bcp out d'une table sans les blancs de de fin
    Par armor92 dans le forum Sybase
    Réponses: 4
    Dernier message: 07/12/2006, 16h10
  3. Bcp out d'une table sans les blancs de fin de chaine
    Par armor92 dans le forum Outils
    Réponses: 3
    Dernier message: 07/12/2006, 13h41
  4. Copie d'une table sans les enregistrements
    Par jmde dans le forum Access
    Réponses: 13
    Dernier message: 06/10/2006, 01h10
  5. Réponses: 3
    Dernier message: 24/04/2006, 19h56

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