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 :

VBA-Excel copier la valeur d'une textbox dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut VBA-Excel copier la valeur d'une textbox dans une cellule
    Bonjour,

    désolé si la question est élémentaire ou déjà traitée ailleurs.
    J'ai crée un userform avec deux textbox pour inviter l'utilisateur à les remplir.
    J'ai activé l'option multilignes dans ces textbox car il peut être nécessaire de faire des saut à la ligne dans les textes à rentrer.

    A un moment de mon programme je récupère ces valeurs pour les mettre dans des cellules.

    Voici les bouts de codes concernés ( je copie des lignes un peu eloignées car tout n'est pas à l'affilé en fait )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
         Load AjoutProjet1
        AjoutProjet1.Show
     
     
        Myvalue1 = AjoutProjet1.TextBox2.Value
        MyValue2 = AjoutProjet1.TextBox1.Value
     
        Worksheets(Mafeuille).Range("B" & MaLigne) = Myvalue1
        Worksheets(Mafeuille).Range("B" & MaLigne + 1) = MyValue2
    AjoutProjet1 est le userform et MaLigne une variable définie plus haut pour placer le texte à la bonne ligne.

    Cela marche à ceci près que quand il y a plusieurs lignes dans les textbox un caractère en forme de petit carré s'affiche à la fin de chaque ligne dans la cellule et j'aimerais qu'il ne s'affiche pas.
    Comment faire ?

    Autre question qui n'a rien à voir mais j'en profite : je travaille sur excel 2000 sous windows 2000 professionel et mes programmes fonctionnent bien je n'ai pas d'erreur.
    J'ai fait testé mon programme à quelqu'un d'autre qui utilise windows xp ( et donc surement un excel plus recent aussi ) mais lors de l'execution il a eu des erreurs que je n'ai pas.
    Comme mon boss travaille sous xp aussi j'aimerais être sur que les applications vont marcher sur son ordi.
    Donc j'aimerais savoir s'il existe un lien avec les descriptions des evolutions entre xp et 2000 au niveau de vba qui pourrait me faire voir comment je dois corriger mes codes pour qu'ils soient compatibles...

    Merci d'avance de votre aide

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Salut,
    J'ai fait testé mon programme à quelqu'un d'autre qui utilise windows xp ( et donc surement un excel plus recent aussi ) ...
    Ce n'est parcequ'il a windows XP qu'il a forcement excel 2003 ... Je te signale que Excel 97 marche très bien sur Windows xp donc avant tout verifie que qu'il a la même version Excel que toi .

    @+

    Igloobel
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    comment saisi tu tes données dans textbox...? je n'arrive pas à reproduire le probléme...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Pour Igloobel : ok je vais vérifier quelle version il avait et tant qu'à faire qu'il me dise exactment les erreurs pour être plus précis ...

    Pour bbil : Quand j'ai crée mon userform j'ai mis ma textbox ( en utilisant la boite à outils j'ai mis une zone de texte ).
    J'ai mis un texte par défaut dedans ( à savoir " Entrez ici la description du projet" ). Ce texte se retrouve alors dans les propriétés Value et Text de la textbox.

    Lors du lancement de l'application et de l'execution du bout de code précédent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Load AjoutProjet1
        AjoutProjet1.Show
     
     
        Myvalue1 = AjoutProjet1.TextBox2.Value
        MyValue2 = AjoutProjet1.TextBox1.Value
     
        Worksheets(Mafeuille).Range("B" & MaLigne) = Myvalue1
        Worksheets(Mafeuille).Range("B" & MaLigne + 1) = MyValue2
    AjoutProjet1 est affiché à l'ecran avec les deux textbox ( AjoutProjet1.show )
    l'execution du code est donc suspendue jusqu'à ce que l'on cache ou l'on ferme le userform.
    Le userform etant affiché l'utilisateur peut modifier le contenu des textbox ( en cliquant dedans et en tapant son texte, j'ai activé le passage à la ligne avec la touche enter dans les propriétés de la textbox mais on peut aussi le faire avec CTRL+Enter sinon et le résultat est le même dans la cellule )

    Dans le userform j'ai mis un bouton de commande "valider les données" qui cache le userform (AjoutProjet1.Hide ) et donc le code au dessus reprend et affecte les nouvelles valeurs des textbox à Myvalue1 et 2.
    Comme je l'ai dit plus haut le texte des textbox est accessible par les propriétés value et text mais dans les deux cas le résultat est le même dans la cellule j'ai un petit carré à la fin des lignes avant qu'il change de ligne.

    Voilà j'espere que c'est plus précis ...

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    pour supprimer le caractère de retour à la ligne du TextBox (carré blanc) , tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets(Mafeuille).Range("B" & MaLigne) = _
        Application.WorksheetFunction.Substitute(Myvalue1, vbCrLf, Chr(10))

    bonne soiree
    michel

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour à tous,

    Merci SilkyRoad pour ton aide mais ça ne marche pas maintenant j'ai FAUX dans mes cellules à la place des textes...

    Pour les problèmes de versions : après test sur excel 2003 certaines choses ne passent pas comme l'utilisation directe des expressions type : Chr(10) dans une chaine mais apparement en mettant VBA.Chr(10) ça passe dans les deux versions.
    Plus embetant j'ai une macro qui crée un bouton dans une feuille et qui ecrit également son code voici à quoi cela ressemble :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set MonBouton = Mafeuille2.Shapes.AddOLEObject( _
    ClassType:="Forms.CommandButton.1", _
    Left:=Poscol, _
    Top:=PosLigne, _
    Width:=100, _
    Height:=20)
     
    MonBouton.Name = "Actualiser" & MyValue + 1
     
    Worksheets(Mafeuille).OLEObjects("Actualiser" & MyValue + 1).Placement = xlMoveAndSize
        With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
            .InsertLines 1, monCode
        End With

    Cela marche parfaitement sous excel 2000 sur mon poste mais cela déclenche une erreur 1004 sous excel 2003 ( le bouton est créé mais le code n'est pas écrit ).
    C'est surement une protection qui en est la cause mais même en mettant la sécurité des macros au mini cela persiste.
    Si quelqu'un sait comment contourner ce problème merci d'avance

    Garfield

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par GrandGarfield
    ...

    Pour les problèmes de versions : après test sur excel 2003 certaines choses ne passent pas comme l'utilisation directe des expressions type : Chr(10) dans une chaine mais apparement en mettant VBA.Chr(10) ça passe dans les deux versions.....
    Voir si tu n'as pas des "référence MANQUANTE" .. dans VBE outils Référence..

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 3
    Dernier message: 13/01/2009, 16h55
  3. Réponses: 4
    Dernier message: 02/07/2008, 11h32
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13

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