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 :

importation de données [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut importation de données
    Bonjour,

    tous n'est pas dans le titre.

    La question posée et comment importer plusieurs textbox d'un usf dans un autre pour ensuite remplir une cellule.

    Donc en fait j'ai deux usf.

    Le premier envoie dans mon second un nom(non modifiable).

    Dans le second, on retrouve donc le nom envoyé par le premier puis des valeurs à rentrer (que des textbox).

    Dans l'absolu, mon second usf enregistrera le texte des textbox que je stockerais (je ne sais pas où) lors de la sortie de mon usf n°2 jusqu'a ce que l'on finisse et valide l'usf n°1. Le tout étant ensuite placé dans une cellule.


    dans la cellule en question nous aurons les données (concernées) disposées comme ceci:

    nom boite
    adresse
    code postal + ville + cédex(éventuellement)
    personne référente (prénom+nom)
    tel
    fax

    J'utiliserais bien la ruse en créant un textbox invisible qui serais rempli par les autres textbox avec la mise en forme puis je le fais revenir dans le premier comme j'ai fait pour le nom avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm_rens_titulaire.TextBox_nom = UserForm_saisie_marche.TextBox_titulaire_marche
    Mais je sais pas si je peux garder les données comme ça (y a toujours moyen).

    Je voudrais savoir si il existe d'autres possibilités qui soit plus subtile que celle que j'ai "créé".

  2. #2
    Expert éminent


    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
    Par défaut
    Bonjour,

    tu peu utiliser une variable de type chaine et publique pour cela tu créé un module (standard) ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim stMonNom as string
    et dans ton userForm1 sur validation par exemple ... tu met à jour cette variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stMonNom = textBox1.text
    et tu récupère cela dans le code de ton userform2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     textBox5.text =stMonNom

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    J'avais pas pensé au variable publique.

    Vu que j'ai 5 ou 6 textbox (voir un peu plus), je dois pouvoir les passer dans un tableau de string (), le tableau étant la variable publique.

    Question (surement conne mais bon): pourquoi créer un module? Je ne pourrais pas faire ma déclaration publique avant de coder mon usf et ses composants.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Bon je cale. Je pensais qu'en déclarant ça comme ça, ça passerait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Dim information As String
     
    Private Sub Bouton_coordonnées_Click()
        'affichage fenêtre de renseignements du titulaire du marché
        UserForm_rens_titulaire.Show
    End Sub  (en fait la déclaration est tout en au c'est la première chose que l'on voit)
    c'est pas le cas car il est pas reconnu dans mon second userform. donc la solution par module standard est pas faite car j'arrive pas à la trouver sur le forum.

    sinon j'ai fit ça en attendant ce qui ne sert à rien tant que l'envoie ne passe pas:
    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
    Private Sub Bouton_enregistrer_Click()
     
         'Création d'une chaine pour contenir le texte de la textbox
        Dim text As String, fax As String, telephone As String, cedex As String
     
        If TextBox_cedex.text = Null Then
            cedex = ""
        Else
            cedex = "cedex " + TextBox_cedex.text
        End If
     
        TextBox_cedex.text = cedex
     
        If TextBox_telephone.text = Null Then
            telephone = ""
        Else
            telephone = "tel : " + TextBox_telephone.text
        End If
     
        TextBox_fax.text = fax
     
        If TextBox_fax.text = Null Then
            fax = ""
        Else
            fax = "fax : " + TextBox_fax.text
        End If
     
        TextBox_fax.text = fax
     
     
        text = TextBox_nom.text & vbLf & TextBox_adresse & vbLf & TextBox_code_postal & _
            TextBox_ville.text & TextBox_cedex.text & vbLf & _
            TextBox_prenom_referent.text & " " & TextBox_nom_referent.text & _
            vbLf & TextBox_telephone.text & vbLf & TextBox_fax.text
     
     
        'Remise de la chaine dans la variable textbox.text pour intégration dans
        'la dernière ligne du fichier par l'appel fait plus haut
     
     
        Unload UserForm_rens_titulaire
     
    End Sub

  5. #5
    Expert éminent


    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
    Par défaut
    Citation Envoyé par Chicard Voir le message
    (...)
    c'est pas le cas car il est pas reconnu dans mon second userform. donc la solution par module standard est pas faite car j'arrive pas à la trouver sur le forum.
    (...)
    peu-être que standard n'est pas le bon terme.. tu fais insertion module , tout simplement dans l'éditeur VBE.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    donc suite à ton conseil j'ai créé un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub declaration()
        Dim information As String
    End Sub
    Suite au remplissage de mes differents champs j'ai fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     text = TextBox_nom.text & vbLf & TextBox_adresse & vbLf & TextBox_code_postal & _
            TextBox_ville.text & TextBox_cedex.text & vbLf & _
            TextBox_prenom_referent.text & " " & TextBox_nom_referent.text & _
            vbLf & TextBox_telephone.text & vbLf & TextBox_fax.text
     
        information = text
    jolie message d'erreur
    variable ou procédure attendue et non un module
    moi qui pensais que le module me servirait qu'à faire une déclaration de variable (mais j'ai peut-être merdé aussi.

    Que c'est dur d'être une quiche en vba

  7. #7
    Expert éminent


    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
    Par défaut
    non il ne faut pas mettre dans déclaration dans une procédure car à ce moment la ce n'est plus une variable globale ... enlève "Sub déclaration.."

    voir erreur de portée :
    http://bbil.developpez.com/tutoriel/...ariables#LXIII

  8. #8
    Invité de passage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 1
    Par défaut
    Bonsoir,

    Il faut déclarer dans un module (bouton droit de la souris, insertion, module) au niveau Général - Déclaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public information as string
    Cette variable sera utilisable dans toute l'application.

    Voir en annexe un fichier Word concernant des déclarations de variables dans un module.

    Didier
    Fichiers attachés Fichiers attachés

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je me permets d'intervenir sur la conception de ta feuille et entre autre le fait de tout mettre dans une cellule.

    Travaillant tous les jours avec des fichiers d'adresses (c'est une grande partie de mon métier), je peux te dire que c'est une très mauvaise idée pour exploiter les adresses par la suite (mailing, etc..)

    Il faut séparer tes données dans des cellules différentes.

    Voilà un petit apparté.

    Philippe

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Effectivement en mettant juste public dans un module ça récupère mes données et ça marche. Encore quelques réglages au niveau affichage et cela sera bon pour ça.


    Je pense que les signes bizarres viennent du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    text = TextBox_nom.text & vbLf & TextBox_adresse & vbLf & TextBox_code_postal & _
            TextBox_ville.text & TextBox_cedex.text & vbLf & _
            TextBox_prenom_referent.text & " " & TextBox_nom_referent.text & _
            vbLf & TextBox_telephone.text & vbLf & TextBox_fax.text

    @ Philippe JOCHMANS; ayant moi même fait un peu de mailing je sais que c'est inexploitable mais comme ces données ne sont que des renseignements qui ne sont pas destinés à autres choses c'est pas gênants.

    Par rapport au tel et au fax j'ai fait ça:
    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
    If TextBox_telephone.text = Null Then
            telephone = ""
        Else
            telephone = "tel : " + TextBox_telephone.text
        End If
     
        TextBox_fax.text = fax
     
        If TextBox_fax.text = Null Then
            fax = ""
        Else
            fax = "fax : " + TextBox_fax.text
        End If
     
        TextBox_fax.text = fax
    et je vois pas où est le souci. Il faudriat que je mette "" au lieu de nul.
    Pièces jointes en attente de validation Pièces jointes en attente de validation

  11. #11
    Expert éminent


    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
    Par défaut
    Citation Envoyé par Chicard Voir le message
    ...
    et je vois pas où est le souci. Il faudrait que je mette "" au lieu de nul.
    et pourquoi ne le fait-tu pas ?




    ------------------------
    Fichier joint dans vos discussions

  12. #12
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    c'était pas forcément purement rhétorique mais de toute façon ça résoud pas le souci.

  13. #13
    Expert éminent


    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
    Par défaut
    Citation Envoyé par Chicard Voir le message
    c'était pas forcément purement rhétorique mais de toute façon ça résoud pas le souci.
    et c'est quoi ton problème ?

  14. #14
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    En prenant le fichier qui est juste plus haut (classeur1.xls) si tu agrandit la colonnes ou se trouve un nom une adresse etc... tu verras qu'a chaque ligne il y a un petit symbole que je ne veux pas et que là ou il devrait y avoir écrit tel : numéro de téléphone il n'y a que le numéro et que le fax étant inexistant fax ne devrait pas être écrit.

    Le code se trouve au dessus également.

  15. #15
    Expert éminent


    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
    Par défaut
    Citation Envoyé par Chicard Voir le message
    En prenant le fichier qui est juste plus haut (classeur1.xls) si tu agrandit la colonnes ou se trouve un nom une adresse etc... tu verras qu'a chaque ligne il y a un petit symbole que je ne veux pas et que là ou il devrait y avoir écrit tel : numéro de téléphone il n'y a que le numéro et que le fax étant inexistant fax ne devrait pas être écrit.

    Le code se trouve au dessus également.
    Je n'ouvre pas les pièces jointes ... sauf si le membre à fait un réel effort de description de son problème et que ceci ne suffit pas ..

    Il est ou ce symbole et il ressemble à quoi ?

    pour les "fax" tout seul :
    Citation Envoyé par Chicard
    Voir le message
    ...
    et je vois pas où est le souci. Il faudrait que je mette "" au lieu de nul.
    est-ce fait ?


    Tu dis pas non-plus ou tu en est des modifications de ton code au sujet des variables ...
    Ajoute dans tout tes modules en première ligne :
    Ligne qui devrait être obligatoire (surtout pour les débutants) ..

  16. #16
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Pour passer les données d'un usf à l'autre c'est réglé avec la déclaration en public d'une variable dans un module donc c'est réglé.

    Pour ce qui du téléphone et du fax sans numéro c'est réglé mais pas le fait d'afficher tel : xx-xx-xx-xx-xx (idem pour le fax)

    Le symbole qui se trouve est un petit carré qui ne se colle pas sur le web. voici une image


    en fait le numéro de téléphone qui apparait dans l'image au dessus du fax devrait être précédé de : "tel : "


    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
    Private Sub Bouton_enregistrer_Click()
     
         'Création d'une chaine pour contenir le texte de la textbox
        Dim text As String, fax As String, telephone As String, cedex As String
     
        If TextBox_cedex.text = "" Then
            'cedex = ""
        Else
            cedex = "cedex  " + TextBox_cedex.text
        End If
     
        TextBox_cedex.text = cedex
     
        If TextBox_telephone.text = "" Then
            'telephone = ""
        Else
            telephone = "tel :  " + TextBox_telephone.text
        End If
     
        TextBox_telephone.text = telephone
     
        If TextBox_fax.text = "" Then
            'fax = ""
        Else
            fax = "fax :  " + TextBox_fax.text
        End If
     
        TextBox_fax.text = fax
     
        text = TextBox_nom.text & Chr(10) & TextBox_adresse.text & vbLf & TextBox_code_postal.text & _
            Chr(32) & TextBox_ville.text & Chr(32) & TextBox_cedex.text & vbLf & _
            TextBox_prenom_referent.text & Chr(32) & TextBox_nom_referent.text & _
            vbLf & TextBox_telephone.text & vbLf & TextBox_fax.text 
     
        information = text
     
        Unload UserForm_rens_titulaire
     
    End Sub
    c'est le code qui rempli et met en forme ce qui doit aller dans la cellule par le retour de la variable information qui est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public information as string

  17. #17
    Expert éminent


    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
    Par défaut
    Quel est le code pour écrire dans excel (et dans la variable intermédiaire s'il y as lieu..)

  18. #18
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    finalement c'est bon j'ai trouvé. Il me reste plus qu'a viré les ligne qui sont vides quand il y en a et cela sera bon pour cette partie

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

Discussions similaires

  1. Importer des données grace a des *.cvs dans MySQL
    Par Mic0001 dans le forum Installation
    Réponses: 3
    Dernier message: 05/01/2005, 20h26
  2. [CR]Importer des données d'une feuille excel
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/12/2004, 23h32
  3. Réponses: 3
    Dernier message: 13/12/2004, 14h54
  4. Importer des données dans sql server avec DELPHI ???
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2004, 18h22
  5. Importation de données postgresql
    Par ythierrin dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 10/10/2003, 23h18

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