Formule en VBA avec cellule et variables

MaTThi9u

XLDnaute Nouveau
Bonsoir,

galère, galère, je ne parviens pas à construire une formule en vba.
çà va faire 2 heures et rien y fait.

je souhaite insérer une formule dans une cellule mais à part avoir des erreurs 1004 ou des non fonctionnelles, je ne m'en sors pas ...

en gros je souhaite la formule:
=si telle cellule vide alors vide sinon variable & cellule & . & cellule et variable.

fichier joint.

merci d'avance.

EDIT: je souhaite obtenir grâce à la formule le chemin vers une photo du type : chemin_photo\nom1.prenom1.jpg
 

Pièces jointes

  • Formule_vba.xlsm
    19.1 KB · Affichages: 22
Dernière modification par un modérateur:

Dranreb

XLDnaute Barbatruc
Re : Formule en VBA avec cellule et variables

Bonsoir.
Et en exactement, vous voulez quoi comme formule ?
Ah, "chemin du classeur\Photos\"&$A2&"."&$B2&".jpg") je suppose
Attendez un instant…
Comme ça :
VB:
Sub cheminphoto()
Feuil1.[C2:C6].FormulaR1C1 = "=IF(RC1="""","""",""" & _
   ThisWorkbook.Path & "\Photos\""&RC1&"".""&RC2&"".jpg"")"
End Sub
 
Dernière édition:

MaTThi9u

XLDnaute Nouveau
Re : Formule en VBA avec cellule et variables

Nickel çà fonctionne même si je ne comprends pas trop tous ces "RC" ...
Mais, car il y a toujours un mais, impossible de passer mes variables dans la formule ...
Code:
Sub cheminphoto()
dim extension as string, chemin_photo as string
extension = ".jpg", chemin_photo = ThisWorkbook.Path & "\Photos\"
Feuil1.[C2:C6].FormulaR1C1 = "=IF(RC1="""","""",""" & _
   chemin_photo"&RC1&"".""&RC2&"extension")"
End Sub
erreur de syntaxe et j'en passe ...
 

Dranreb

XLDnaute Barbatruc
Re : Formule en VBA avec cellule et variables

Bonjour.
Il n'est jamais possible de passez des variables dans une formule, seulement leurs valeurs.
Mais là, c'est inutile de passer par des variables pour des valeurs à n'appliquer qu'une fois.
Mais si vous y teniez absolument :
VB:
Sub cheminphoto()
Dim extension As String, chemin_photo As String
extension = ".jpg": chemin_photo = ThisWorkbook.Path & "\Photos\"
Feuil1.[C2:C6].FormulaR1C1 = "=IF(RC1="""","""",""" & _
   chemin_photo & """&RC1&"".""&RC2&""" & extension & """)"
End Sub

En notation R1C1, RC1 signifie Ligne courante de la formule et colonne 1.
On peut aussi utiliser la notation A1 pour plusieurs cellules, mais ça me parait moins clair car seule la 1ère cellule de la plage recevra exactement la formule spécifiée, les autres seront changées par la recopie incrémentée. En R1C1 c'est rigoureusement la même formule partout, puisque les références relatives le sont par rapport à la ligne et la colonne de chaque cellule qui porte la formule.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 975
dernier inscrit
denry