Aide vba

Signaler
Messages postés
6
Date d'inscription
vendredi 1 juin 2012
Statut
Membre
Dernière intervention
10 février 2013
-
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012
-
Bonjour je souhaite mettre la valeur de cellules dans un texte a trou en vba mais je n 'y arrive pas
Par exemple si je mets
Cells(1,2).value="la"&B15&"chance" il y a un message d'erreur.
Comment dois-je proceder ?
Merci d'avance

11 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
66
Salut et bienvenu

Première chose : prète attention à la catégorie de ta question. VBA n'est pas du VB6, mais éventuellement du VB version 6 (office 2003)
C'est important pour les réponses.

Ensuite, un forum est un lieu où l'on peut poser des questions, certes, mais aussi où l'on peut faire des recherches; c'est même fortement conseillé si on veut gagner du temps.
Donc, la prochaine fois, mets un titre en rapport avec ta question; cela permettra aux autres de trouver les réponses à une question similaire à la leur.

Enfin, si tu avais chargé quelques sources qui parlent de VBA ou de Excel, tu aurais déjà ta réponse.

Ta syntaxe réelle est :
Cells(1,2).value = "la" & B15 & "chance"
(avec des espaces devant et derrière les symboles "&")
qu'il faut modifier en :
Cells(1,2).value "la " & Range("B15").Value & " chance"
Tu noteras l'utilisation de la mise en forme des lignes de programme; outil 3ème icone à droite = plus facile à relire.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Bonjour,

Par exemple si je mets
Cells(1,2).value="la"&B15&"chance" il y a un message d'erreur.
Comment dois-je proceder ?


En espérant avoir compris

dim texte as string
texte = range("B15").text
Cells(1,2).value="la "& texte & " chance"


Sinon, il va falloir préciser.

Bonjour Jack,

Désolé pour la répétition. Quand j'ai cliqué sur Envoyer, ta répons n'y était pas.
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
Ou encore :
                    Cells(1, 2).Value = "la " & [B15] & " chance"


___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Messages postés
11
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012

Cells(1, 2).Value = "la " & [B15] & " chance"

Oui mais t’exécute ta macro depuis ou ? La feuille ou ce trouve la donnée ? donc la feuille active donc :
ThisWorkbook.ActiveSheet.Cells(1, 2).Value = "la " & [B15] & " chance"

Alors alors sur une autre feuille ?
ThisWorkbook.Worksheets(nom_de_la_feuille).Cells(1, 2).Value = "la " & [B15] & " chance"

J'ai pu entrevoir que tu voulais utiliser la propriété range pour avoir une cellule nommée en A1,A2.. ect ce qui donnerai ici :
ThisWorkbook.ActiveSheet.range(B2).Value = "la " & [B15] & " chance"


Ceci est juste d'autre manière de voir la chose
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
                           

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Messages postés
6
Date d'inscription
vendredi 1 juin 2012
Statut
Membre
Dernière intervention
10 février 2013

Merci beaucoup Jack cela fonctionne parfaitement
Messages postés
6
Date d'inscription
vendredi 1 juin 2012
Statut
Membre
Dernière intervention
10 février 2013

J'ai une autre question.
Et j'ai beau avoir cherché sur le net je n'ai pas trouvé la réponse à ma question.
En fait j'ai créé un bouton sur ma feuille excel que j'ai nommé "outlook" et j'aimerai pouvoir envoyer par mail les données d'une cellule en cliquant sur ce bouton (via une macro vba).
Si quelqu'un peut m'apporter des éléments de réponses .
Merci d'avance
Clément
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Salut Clement,

Très récemment ucfoutu m'a passé ces liens.
Pour moi ça m'a dépanné (je voulais importer Outlook ds xls => http://www.vbfrance.com/forum/sujet-VARIABLE-MESSSAGE-OUTLOOK_1594584.aspx) :

http://www.openhost.fr/envoyer-mail-vba-cdo/
http://www.openhost.fr/piloter-outlook-depuis-access-excel-powerpoint-code-vba/

En principe tu devrais t'en sortir.

Lezeps ;-))
Messages postés
6
Date d'inscription
vendredi 1 juin 2012
Statut
Membre
Dernière intervention
10 février 2013

Je n'arrive pas a comprendre pourquoi cela ne fonctionne pas :

sub outlook()

'Sa fonction, assez simple, permet de préremplir un mail au sein de Outlook, et ce depuis une autre application VBA (Excel, Access, PowerPoint?)
'L'envoi n'est pas réalisé par ce code (cf remarque en pied de page)
'L'envoi est prévu pour être fait par l'utilisateur après relecture de son mailOption Compare Database
'Déclare les Objets permettant de « télécommander » OutLook depuis du Code VBA
' inséré dans Excel ou dans Access, PowerPoint etc?Dim olApp As Outlook.Application
Dim objMail As outlook.MailItem
'Cette procédure active la télécommande?Private Sub EnvoiMail()?Commençons par créer une instance Outlook au sein de notre projet afin de pouvoir
'démarrer la prise de control
Set olApp = GetObject(, "outlook.application")

'L'objet olExplorer va nous permettre de nous déplacer au sein de l'arborences d'OutLook
Dim olExplorer As outlook.Explorer

'Créons un objet Mail qui va nous servir de base pour définir les paramètres et le contenu de notre mail

Set objMail = olApp.CreateItem(olMailItem)



'Maintenant nous allons créer un object nous permettant de nous déplacer dans les dossiers d'outlook.
Dim mpf As outlook.MAPIFolder

'Dans quel format voulons nous notre Mail Texte Brut ou Texte Enrichi

objMail.BodyFormat = olFormatRichText

'Affiche le mail dans Outlook
'Sans cette ligne la fenêtre n'est pas visible
objMail.Display

'Affectation du sujet du mail
'Idéalement, vous utiliserez dans votre propre code une variable ou un paramètre via l'appel de cette procédure
objMail.Subject = " Date de constatation "

'Affectation du corps du message, le Body?
objMail.Body = " " & Range("A152").Value & " "

'Affectation du destinataire du message
objMail.To = " "

'Affectation des destinataires en Copie ou en copie cachée
'objMail.CC= « jhjhjlj@titi.fr«
'objMail.BCC= »bnnbnn@toto.com«

' Et voila, vous avez prérempli votre mail au sein d'outlook
' Il ne vous reste plus que de compléter éventuellement votre mail à la main et de cliquer sur Envoyer

'Si vous souhaitez forcer l'envoi directement depuis le code VBA, sans laisser le temps à l'utilisateur de relire le mail
' il vous suffit de faire appel à :
'objMail.Send

Set olApp = Nothing
Set objMail = Nothing
End Sub
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Clément,

As tu activé (coché) Microsoft Outlook 8.0 Object Library ou plus dans Outils\Références de VBA


Lezeps ;-))