Microsoft 365 Inscrire une formule dans une cellule

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 !

Yves du calvados

XLDnaute Nouveau
Bonjour à tous,

je posséde un petit programme permettent de coder/décoder des messages divers.

mon principal soucis est que je souhaiterai inserer la formule :

=SI(A11=" ";" ";RECHERCHEV(A11;Decodage!$C$10:$D$685;2))

de manière automatique sur un certain nombre de collones, cette formules fonctionne très bien, hors VBA.

J'ai essayé de la manière suivante :

Range(i & "12").Formulalocal = ""=SI(" i & "12=" ";" ";RECHERCHEV("i & "11;Codage!$C$10:$D$685;2))""

sans succès .
je n'arrive pas à comprendre mon erreur.

je vous remercie d'avance pour votre aide
Cordialement.
 

Pièces jointes

Bonjour Gourmand, et bienvenu sur XLD.
Dans votre macro, "i" est un nombre entier. ( en l'occurrence 261 qd on sort de la boucle )
Donc dans votre formule "i & " & 11" va donc valoir : 26111, ce qui ne veut rien dire dans une formule XL, une cellule est appelée soit par A1 soit par L1C1.
Une possibilité est de passer par un Index pour récupérer la valeur.
Par ex "INDEX(11:11;COLONNE()" récupère la valeur de la ligne 11 de la colonne où est la formule.
Essayez ça. Il propage la formule sur la ligne 20 de la colonne A à la colonne U :
VB:
Sub essai()
    For i = 1 To 21
        Cells(20, i).FormulaLocal = "=SI(INDEX(11:11;COLONNE())="" "";"" "";RECHERCHEV(INDEX(11:11;COLONNE());Decodage!$C$10:$D$685;2))"
    Next i
End Sub
Adaptez ça à votre contexte.
 
Bonjour à tous
ici la reprise de ta formule pour le codage
Le supprespace est à ajouter la ligne 11 contient des espaces dans certaines colonnes
For i = 1 To longueur
formule = "=SI(supprespace(" & Cells(11, i).Address & ")=" & """" & """" & ";" & """" & """" & ";RECHERCHEV(" & Cells(11, i).Address & " ;Codage!$C$10:$D$685;2))"
Cells(12, i).FormulaLocal = formule
'
Next i
 
Bonjour à tous,

@gourmand15, une autre approche et une optimisation du code en plus 😉
VB:
  '' Codage du message
  Dim sForm As String
  sForm = "=SI(A#="""";"""";RECHERCHEV(A#;Codage!$C$10:$D$685;2))"
  For I = 1 To Longueur
    Wsh.Cells(12, I).FormulaLocal = Replace(sForm, "#", I)
  Next I

A+
 

Pièces jointes

- 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

Réponses
9
Affichages
659
Réponses
1
Affichages
756
Retour