Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA : Variable dans formule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dionys0s

XLDnaute Impliqué
Bonjour le forum (ou plutôt re...)

Je me tire les cheveux sur le code suivant :

Code:
Sub A()

Feuil1.Select
Dim SER As String

SER = Mid(Range("A18").Value, 19, Len(Range("A18").Value) - 18)
Feuil4.Visible = True
Feuil4.Select

Rows("1:1").Select
Selection.Find(What:=SER, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Offset(1, 0).Select

CodSER = ActiveCell.Value

Feuil1.Select

Range("E1").FormulaR1C1 = "=""BAR ""& Year(TODAY()) & Month(TODAY()) & "" - 01"""

End Sub

Ce code-ci marche. Traduite dans Excel, la formule en E1 donne ceci :
="BAR "& ANNEE(AUJOURDHUI()) & MOIS(AUJOURDHUI()) & " - 01"

Seulement j'aimerais remplacer "BAR" par ma variable CodSER (du texte) définie juste au dessus, et qui semble correcte, puisqu'à l'exécution pas par pas de la macro, elle annonce la bonne valeur. Mais impossible d'afficher ma variable dans ma cellule à la fin de l'execution. J'ai l'impression d'avoir tout essayé mais ça m'affiche soit #NOM, soit CodSER 201011 - 01...

Aurais-je mal défini ma variable CodSER ?

D'avance merci pour votre aide
 
Re : VBA : Variable dans formule

Salut dionys0s,

à tester et adapter sur ton fichier.


VB:
Sub A()

Dim SER As String, CodSER As String

Application.ScreenUpdating = False

Sheets("Feuil1").Select
SER = Mid(Range("A18").Value, 19, Len(Range("A18").Value) - 18)

If Sheets("Feuil4").Visible = False Then Sheets("Feuil4").Visible = True
Sheets("Feuil4").Select

Set c = Rows("1:1").Find(What:=SER, LookIn:=xlFormulas, LookAt:=xlPart)
If Not c Is Nothing Then
    CodSER = Cells(c.Row + 1, c.Column).Value
Else
    Exit Sub
End If

Sheets("Feuil1").Select

Range("E1").Formula = "=CONCATENATE(""" & CodSER & ""","" "",TEXT(DATE(YEAR(NOW()),MONTH(NOW()),1),""aaaa-mmm-jj""))"

End Sub

Cordialement,

Étienne
 
Re : VBA : Variable dans formule

Bonsoir,

Plus simple, essaie comme ceci :

Code:
Dim Codser as string, ref as string
codser = "BAR"
ref = Format(Date, "yyyymm") & " - 01"
Range("E1") = codser & " " & ref

Amicalement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

B
Réponses
2
Affichages
1 K
A
Réponses
2
Affichages
1 K
Antoine C.
A
N
Réponses
17
Affichages
3 K
ninajams
N
S
Réponses
5
Affichages
2 K
Sa Mariam
S
M
Réponses
4
Affichages
2 K
mathieu42400
M
O
Réponses
20
Affichages
4 K
O
M
  • Question Question
Réponses
0
Affichages
1 K
Mirguy23
M
A
Réponses
6
Affichages
6 K
F
Réponses
14
Affichages
2 K
F
N
Réponses
5
Affichages
2 K
Nicko29
N
A
Réponses
12
Affichages
2 K
adjovi7
A
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…