Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/08/2011, 14h11   #1
Membre du Club
 
Homme
Inscription : janvier 2004
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations forums :
Inscription : janvier 2004
Messages : 239
Points : 63
Points : 63
Envoyer un message via MSN à Chicard
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 :
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éé".
Chicard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h50   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Bonjour,

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

Code :
1
2
 
Dim stMonNom as string
et dans ton userForm1 sur validation par exemple ... tu met à jour cette variable :
Code :
stMonNom = textBox1.text
et tu récupère cela dans le code de ton userform2
Code :
 textBox5.text =stMonNom
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 15h01   #3
Membre du Club
 
Homme
Inscription : janvier 2004
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations forums :
Inscription : janvier 2004
Messages : 239
Points : 63
Points : 63
Envoyer un message via MSN à Chicard
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.
Chicard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h43   #4
Membre du Club
 
Homme
Inscription : janvier 2004
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations forums :
Inscription : janvier 2004
Messages : 239
Points : 63
Points : 63
Envoyer un message via MSN à Chicard
Bon je cale. Je pensais qu'en déclarant ça comme ça, ça passerait:
Code :
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 :
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
Chicard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h49   #5
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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.
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h18   #6
Membre du Club
 
Homme
Inscription : janvier 2004
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations forums :
Inscription : janvier 2004
Messages : 239
Points : 63
Points : 63
Envoyer un message via MSN à Chicard
donc suite à ton conseil j'ai créé un module
Code :
1
2
3
Sub declaration()
    Dim information As String
End Sub
Suite au remplissage de mes differents champs j'ai fait ça:
Code :
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
Citation:
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
Chicard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h23   #7
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 18h27   #8
Invité de passage
 
Homme Didier Marion
Développeur informatique
Inscription : avril 2010
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme Didier Marion
Localisation : France

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

Informations forums :
Inscription : avril 2010
Messages : 1
Points : 1
Points : 1
Bonsoir,

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

Code :
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
Type de fichier : docx Doc1.docx (171,0 Ko, 3 affichages)
Marion1683 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 07h44   #9
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 617
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 617
Points : 30 959
Points : 30 959
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/08/2011, 12h02   #10
Membre du Club
 
Homme
Inscription : janvier 2004
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations forums :
Inscription : janvier 2004
Messages : 239
Points : 63
Points : 63
Envoyer un message via MSN à Chicard
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 :
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 :
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
Type de fichier : xls Classeur1.xls
Chicard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 12h25   #11
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 13h23   #12
Membre du Club
 
Homme
Inscription : janvier 2004
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations forums :
Inscription : janvier 2004
Messages : 239
Points : 63
Points : 63
Envoyer un message via MSN à Chicard
c'était pas forcément purement rhétorique mais de toute façon ça résoud pas le souci.
Chicard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 13h30   #13
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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 ?
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 14h40   #14
Membre du Club
 
Homme
Inscription : janvier 2004
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations forums :
Inscription : janvier 2004
Messages : 239
Points : 63
Points : 63
Envoyer un message via MSN à Chicard
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.
Chicard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 14h46   #15
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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) ..
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 14h56   #16
Membre du Club
 
Homme
Inscription : janvier 2004
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations forums :
Inscription : janvier 2004
Messages : 239
Points : 63
Points : 63
Envoyer un message via MSN à Chicard
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 :
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 :
public information as string
Chicard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 14h59   #17
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Quel est le code pour écrire dans excel (et dans la variable intermédiaire s'il y as lieu..)
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 15h35   #18
Membre du Club
 
Homme
Inscription : janvier 2004
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations forums :
Inscription : janvier 2004
Messages : 239
Points : 63
Points : 63
Envoyer un message via MSN à Chicard
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
Chicard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h55.


 
 
 
 
Partenaires

Hébergement Web