Aide vba

clementpap Messages postés 6 Date d'inscription vendredi 1 juin 2012 Statut Membre Dernière intervention 10 février 2013 - 2 juin 2012 à 18:47
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012 - 5 juin 2012 à 18:29
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 juin 2012 à 18:58
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)
0
Utilisateur anonyme
2 juin 2012 à 19:01
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.
0
Utilisateur anonyme
2 juin 2012 à 19:04
Bonjour Jack,

Désolé pour la répétition. Quand j'ai cliqué sur Envoyer, ta répons n'y était pas.
0
MarcPL Messages postés 172 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 21 juillet 2013 2
2 juin 2012 à 19:05
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mrvin10020cent Messages postés 11 Date d'inscription vendredi 25 mai 2012 Statut Membre Dernière intervention 5 juin 2012
4 juin 2012 à 11:41
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
0
MarcPL Messages postés 172 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 21 juillet 2013 2
4 juin 2012 à 12:15
                           

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
0
clementpap Messages postés 6 Date d'inscription vendredi 1 juin 2012 Statut Membre Dernière intervention 10 février 2013
4 juin 2012 à 13:50
Merci beaucoup Jack cela fonctionne parfaitement
0
clementpap Messages postés 6 Date d'inscription vendredi 1 juin 2012 Statut Membre Dernière intervention 10 février 2013
4 juin 2012 à 14:48
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
0
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012
4 juin 2012 à 21:28
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 ;-))
0
clementpap Messages postés 6 Date d'inscription vendredi 1 juin 2012 Statut Membre Dernière intervention 10 février 2013
5 juin 2012 à 15:10
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
0
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012
5 juin 2012 à 18:29
Clément,

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


Lezeps ;-))
0
Rejoignez-nous