VBA Concaténer Textes TextBox et Cellules
Résolu/Fermé
A voir également:
- VBA Concaténer Textes TextBox et Cellules
- Concatener deux cellules excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Excel compter cellule couleur sans vba - Guide
- Verrouiller cellules excel - Guide
- Les textes ne doivent pas être en retrait à droite et à gauche - Guide
3 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
26 mai 2008 à 11:29
26 mai 2008 à 11:29
bonjour,
peut-être avec..
Range("Désignation") = Range("NomAff") & Range("Commune") & Range("CodeCommune")
S'il daut mettre des intercamaires par ex ":"
Range("Désignation") = Range("NomAff") & ":" & Range("Commune") & ":" & Range("CodeCommune")
A+
peut-être avec..
Range("Désignation") = Range("NomAff") & Range("Commune") & Range("CodeCommune")
S'il daut mettre des intercamaires par ex ":"
Range("Désignation") = Range("NomAff") & ":" & Range("Commune") & ":" & Range("CodeCommune")
A+
P.S : Je me suis permis de créer un nouveau message parce que je n'ai pas trouvé de solution dans les différentes discussions du Forum. (j'ai chercher les discussion tournant autour de "concaténer", "textbox", "mise en forme automatique", etc.)
J'ai assez "betement" repris le terme Concaténer sans réellement savoir si c'est la base de mon probleme ...
Veuillez donc, m'excuser par avance si la réponse se trouve sur le Forum (je n'ai peut etre pas cherché au bon endroit)
J'ai assez "betement" repris le terme Concaténer sans réellement savoir si c'est la base de mon probleme ...
Veuillez donc, m'excuser par avance si la réponse se trouve sur le Forum (je n'ai peut etre pas cherché au bon endroit)
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
26 mai 2008 à 16:08
26 mai 2008 à 16:08
NIGLO...
Comment tu déclare et assigne tes "range" "Commune"," Département" et..
A+
Comment tu déclare et assigne tes "range" "Commune"," Département" et..
A+
Niglo
>
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
26 mai 2008 à 16:59
26 mai 2008 à 16:59
Je détermine NumLigne de la "base de donnée" qui correspond au numéro de la ligne de la commune et je vais chercher dans la colonne A le nom de la commune correspondante, et dans la colonne A celui du département.
(Ainsi en faisant son choix dans le menu déroulant de la liste des commune, l'utilisateur "remplit" Range("Département") et range("Commune") ...
NumLigne = Range("NumCom")
Range("Département") = Sheets("Base de Donnée").Range("B" & NumLigne).Text
Range("Commune") = Sheets("Base de Donnée").Range("A" & NumLigne).Text
Jusque là je n'ai pas de probleme Range("Département") et Range("commune") se remplisse bien correctement.
J'ai définit Département, et Commune : les plage de cellules fusionnées ='Feuille1!$E$17:$F$17 et ='Feuille1!$K$17:$N$17, directement dans Excel : Insertion/Nom/Définir
Je ne sais pas si je répond à ta question ... Je n'ai pas déclarer de variable Commune, Département ... j'avais essayé de les déclarer en tant que String, mais j'éai été incapable de les utiliser ...
n'hesite pas à me dire si je ne suis pas clair ...
P.S : Entre temps j'ai essayé : mais j'ai un message d'erreur "erreur de compilation Erreur de syntaxe"
Désignation As String
Désignation = "= "Désignation d'Affaire : " & Range("NomAff").Value & _
& VbCrlf & "Commune de : " & Range("Commune") & "- Département : " & Range("Département").Value "
(Ainsi en faisant son choix dans le menu déroulant de la liste des commune, l'utilisateur "remplit" Range("Département") et range("Commune") ...
NumLigne = Range("NumCom")
Range("Département") = Sheets("Base de Donnée").Range("B" & NumLigne).Text
Range("Commune") = Sheets("Base de Donnée").Range("A" & NumLigne).Text
Jusque là je n'ai pas de probleme Range("Département") et Range("commune") se remplisse bien correctement.
J'ai définit Département, et Commune : les plage de cellules fusionnées ='Feuille1!$E$17:$F$17 et ='Feuille1!$K$17:$N$17, directement dans Excel : Insertion/Nom/Définir
Je ne sais pas si je répond à ta question ... Je n'ai pas déclarer de variable Commune, Département ... j'avais essayé de les déclarer en tant que String, mais j'éai été incapable de les utiliser ...
n'hesite pas à me dire si je ne suis pas clair ...
P.S : Entre temps j'ai essayé : mais j'ai un message d'erreur "erreur de compilation Erreur de syntaxe"
Désignation As String
Désignation = "= "Désignation d'Affaire : " & Range("NomAff").Value & _
& VbCrlf & "Commune de : " & Range("Commune") & "- Département : " & Range("Département").Value "
Re -
N'arrivant toujours pas à récupérer mes différents textes de cellule et de textbox, j'ai essayé la mise en forme de texte sur plusieurs lignes
Dim Texte As String
Texte = "Désignation" & vbCrLf & "Commune" & vbCrLf & "Département"
Range("B42:D44").Value = Replace(Texte, Chr(13), "")
J'obtiens bien :
Désignation
Commune
Département
Je ne comprends donc pas pourquoi je n'arrive pas à faire référence au texte des cellules à la place des textes que j'ai tapés dans le code.
Comment écrire le meme code en insérant le texte issus de plage de cellule nommée (dans mon cas : Range("NomAff") - Range("Commune") et Range("Département") ) ???
Ce que je n'arrive pas à faire :
Dim Texte As String
Texte = "Désignation" & Range("NomAff").Text & vbCrLf & "Commune de :" & Range("Commune").text & "Département :" & Range("Département").text
Range("B42:D44").Value = Replace(Texte, Chr(13), "")</
J'obtiens :
Désignation
Commune de :Département :
Il me manque les valeurs de mes plages de cellule
N'arrivant toujours pas à récupérer mes différents textes de cellule et de textbox, j'ai essayé la mise en forme de texte sur plusieurs lignes
Dim Texte As String
Texte = "Désignation" & vbCrLf & "Commune" & vbCrLf & "Département"
Range("B42:D44").Value = Replace(Texte, Chr(13), "")
J'obtiens bien :
Désignation
Commune
Département
Je ne comprends donc pas pourquoi je n'arrive pas à faire référence au texte des cellules à la place des textes que j'ai tapés dans le code.
Comment écrire le meme code en insérant le texte issus de plage de cellule nommée (dans mon cas : Range("NomAff") - Range("Commune") et Range("Département") ) ???
Ce que je n'arrive pas à faire :
Dim Texte As String
Texte = "Désignation" & Range("NomAff").Text & vbCrLf & "Commune de :" & Range("Commune").text & "Département :" & Range("Département").text
Range("B42:D44").Value = Replace(Texte, Chr(13), "")</
J'obtiens :
Désignation
Commune de :Département :
Il me manque les valeurs de mes plages de cellule
J'ai "presque" trouvé mon erreur ... (je n'ai plus de probleme pour concaténer deux plages de cellule fusionnée - je me sort en créant des varaibles String dont la valeur est [issue d'une recherche dans la base de donnée].text)
Il ne me manque plus que la syntaxe pour récupérer le texte d'une Textbox remplie par les utilisateurs
Quelqu'un peut il me donner la commande ?
Ma textBox s'appelle Tb_NomAff
j'ai essayé :
- Tb_NomAff (renvoie une valeur vide)
- Tb_NomAff.text (renvoie une valeur vide)
- Tb_NomAff.Value (ne marche pas)
Il ne me manque plus que la syntaxe pour récupérer le texte d'une Textbox remplie par les utilisateurs
Quelqu'un peut il me donner la commande ?
Ma textBox s'appelle Tb_NomAff
j'ai essayé :
- Tb_NomAff (renvoie une valeur vide)
- Tb_NomAff.text (renvoie une valeur vide)
- Tb_NomAff.Value (ne marche pas)
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
27 mai 2008 à 08:28
27 mai 2008 à 08:28
Essaye de cette facon..
OK pour les plages.
Texte = "Désignation :" & Tb_NomAff.Text & vbCrLf & "Commune de :" & Range("Commune").text & "Département :" & Range("Département").text
Si ca ne fonctionne pas..
Vérifié dans les proproéré de ta textBox, propriété name si c'est bien Tb_NomAff
dans quel module est la macro
si le textbos est sur un UF, il faut le nommer (féjà expliquer plus haut) et ce serrait alors..
Texte = "Désignation :" & UserForme1.Tb_NomAff.Text & vbCrLf & "Commune de :" & Range("Commune").text & "Département :" & Range("Département").text
où UserForme1 doit être le nom de l'UF
OK pour les plages.
Texte = "Désignation :" & Tb_NomAff.Text & vbCrLf & "Commune de :" & Range("Commune").text & "Département :" & Range("Département").text
Si ca ne fonctionne pas..
Vérifié dans les proproéré de ta textBox, propriété name si c'est bien Tb_NomAff
dans quel module est la macro
si le textbos est sur un UF, il faut le nommer (féjà expliquer plus haut) et ce serrait alors..
Texte = "Désignation :" & UserForme1.Tb_NomAff.Text & vbCrLf & "Commune de :" & Range("Commune").text & "Département :" & Range("Département").text
où UserForme1 doit être le nom de l'UF
Pfff ... je suis vraiment C** !!!
MERCI lermite222 ... Je faisais appel à mon TextBox Tb_NomAff dans un autre Useform ! Tu as raison (fallait Useform.Tb_NomAff.text, je pensais qu'avec le Nom du TextBox il allait le chercher tout seul ... Merci encore pour ton aide !
Je vais me lancer sur la mise en forme automatique ...
MERCI lermite222 ... Je faisais appel à mon TextBox Tb_NomAff dans un autre Useform ! Tu as raison (fallait Useform.Tb_NomAff.text, je pensais qu'avec le Nom du TextBox il allait le chercher tout seul ... Merci encore pour ton aide !
Je vais me lancer sur la mise en forme automatique ...
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
>
Niglo
27 mai 2008 à 10:09
27 mai 2008 à 10:09
De rien,
Petits conseils...
Quand tu est dans un module de feuille, tu peu appeller avec Range("A1") ou Cells(1,1)
quand tu est dans un module standard (Module1 par ex)
tu a intérêt à nommer les endroit où se situe le contrôle ou la cellule
Sheets("Feuil1").range("A1") ou Sheets("Feuil1").cells(1,1)
Si beaucoup d'appel à une même feuille..
With Sheets("Feuil1")
.Range("A1") = .cells(6,6)
end With
ou encore
Dim Fl as objet
set Fl=sheets("Feuil1")
et après...
Fl.cells(2,1)=Fl.range("A1")
ou encore
Sheets("Feuil1").select
Range("A1") = Sheets("Feuil2").range("A1")
A+
Petits conseils...
Quand tu est dans un module de feuille, tu peu appeller avec Range("A1") ou Cells(1,1)
quand tu est dans un module standard (Module1 par ex)
tu a intérêt à nommer les endroit où se situe le contrôle ou la cellule
Sheets("Feuil1").range("A1") ou Sheets("Feuil1").cells(1,1)
Si beaucoup d'appel à une même feuille..
With Sheets("Feuil1")
.Range("A1") = .cells(6,6)
end With
ou encore
Dim Fl as objet
set Fl=sheets("Feuil1")
et après...
Fl.cells(2,1)=Fl.range("A1")
ou encore
Sheets("Feuil1").select
Range("A1") = Sheets("Feuil2").range("A1")
A+
Niglo
>
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
27 mai 2008 à 11:48
27 mai 2008 à 11:48
Merci encore ...
Si je peux abuser de ta patience ...
Sais tu où je pourrais trouver des codes de mise en forme de UserForm, TextBox, et Texte dans cellules ...
Je cherche en fait à uniformiser mes mise en pages, pour que les utilisateurs (quelque soit leurs "config excel) travaillent sur les meme document (Affichage, Format, etc ...)
Je cherche donc toutes les mises en forme possible ... merci d'avance !!!
Amicalement
Niglo
Si je peux abuser de ta patience ...
Sais tu où je pourrais trouver des codes de mise en forme de UserForm, TextBox, et Texte dans cellules ...
Je cherche en fait à uniformiser mes mise en pages, pour que les utilisateurs (quelque soit leurs "config excel) travaillent sur les meme document (Affichage, Format, etc ...)
Je cherche donc toutes les mises en forme possible ... merci d'avance !!!
Amicalement
Niglo
Au cas où cela interresserait quelqu'un d'autre ... ma "solution" pour concatener texte de TextBox et autre texte :
Dim TexteConcatené As String, ToTo As String, TaTA As String
Dim BiBi As String, BoBo As String
ToTo = Userform.TextBox.Text
TaTa= Sheets("Feuil1").Range("PlagedeCellule1").Text
BiBi= Sheets("Feuil2").Range("PlagedeCellule2").Text
BoBo = Sheets("Feuil3").Range("PlagedeCellule3").Text
TexteConcatené = ToTo & vbCrLf & TaTa _
& " - " & BiBi & vbCrLf & BoBo
Range("PlageCelluleCible").Value = Replace(TexteConcatené, Chr(13), "")
Dim TexteConcatené As String, ToTo As String, TaTA As String
Dim BiBi As String, BoBo As String
ToTo = Userform.TextBox.Text
TaTa= Sheets("Feuil1").Range("PlagedeCellule1").Text
BiBi= Sheets("Feuil2").Range("PlagedeCellule2").Text
BoBo = Sheets("Feuil3").Range("PlagedeCellule3").Text
TexteConcatené = ToTo & vbCrLf & TaTa _
& " - " & BiBi & vbCrLf & BoBo
Range("PlageCelluleCible").Value = Replace(TexteConcatené, Chr(13), "")
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
>
Niglo
27 mai 2008 à 13:25
27 mai 2008 à 13:25
pas compliqué..
Quand tu est, par exemple sur ton Userform tu tape F1 et pour avoir toutes les solutions sélectionner Voir Aussi
Idem our tout les contrôles.
A+
Quand tu est, par exemple sur ton Userform tu tape F1 et pour avoir toutes les solutions sélectionner Voir Aussi
Idem our tout les contrôles.
A+
26 mai 2008 à 12:04
C'est la première chose que j'ai essayé, mais j'obtiens un message d'erreur :
"Erreur d'exécution '13'
Incompatibilité de type"
J'ai donc essayé de déclarer des "variable" type string pour récupérer des chaines de caractere des cellules Range("NomAff"), Range("Commune") et Range("Département") ... mais cela ne marche pas non plus !!!
Le message d'erreur s'affiche quand je clic sur le bonton de choix du département ... (je précise que mon code marche tant que je garde les différents choix faits par les utilisateur dans différentes plage de cellules fusionées).
Mon erreur provient peut etre du fait de remplir des cellules différentes, y-a t il une syntaxe particulière pour remplir directement une cellule avec les textes issus d'une textbox d'un coté et de choix de bouton et de menus déroulant de l'autre ?
26 mai 2008 à 12:54
Il n'est pas nécessaire de travaillé avec des plage, tu peu très bien le faire avec les adresses de cellules..
ex: si tu veux mettre NomAff en A1 c'est.. Range('A1")=Text1.text
ou par adresse de ligne et colonne, plus facile à indexé...
Cells(NuméroLigne,numeroColonne) = text1.text
Pour A1 ce serrait
Cells(1,1) = text1.text
Les codes ne définissant pas la feuille doivent êtres mis de préférence dans le modue de la feuille, sinon..
Ex: Sheets("Feuil1").Cells(1,1) = NomUserForme.text1.text
Dim
26 mai 2008 à 14:54
Je n'ai pas de soucis pour récupérer des textes individuellement ... que ce soit par Range("Cellule").text ou Range("cellule") ... les textes repris dans les cellule Range("NomAff"), Range("Commune") et Range("Département") correspondent bien aux choix des utilisateurs ...
Mon probleme est "d'assembler" ces textes dans une seule et meme cellule (que ce soit cellule ou plage de cellule fusionnée ... il me semble que cela ne pose pas de probleme).