Aide sur code insertion formule en VBA

Bonjour Le forum,

J'aurai besoin d'un peu d'aide sur un bout de code et l'insertion d'une formule en VBA ?

Voici le code en question :

Sub ImportFiles()

  Dim FileList()

  Range(Range("A2"), Range("A2").End(xlDown)).Clear

  FileList = Application.GetOpenFilename(, , , , True)

  For Ctr = 1 To UBound(FileList)

    Range("A" & Ctr + 1) = FileList(Ctr)
    Range("B" & Ctr + 1) = Dir(FileList(Ctr))

    Formule = "=DROITE(Range("B" & Ctr+1);NBCAR(Range("B" & Ctr+1)-4)"
    Range("C" & Ctr + 1).FormulaLocal = Formule
  Next
End Sub

La ligne qui me pose souci est :

Formule = "=DROITE(Range("B" & Ctr+1);NBCAR(Range("B" & Ctr+1)-4)"

Quel est la bonne synthaxe ?

Je bloque depuis quelques heures en vain...

Merci d'avance pour vos retour.

Bonjour samsam07

Commencez à lancez votre code en mode débogage F8

Quand le code aura passez la ligne, saisissez Debug.Print Formule dans la fenêtre d'exécution et vous comprendrez

A+

Bonjour BrunoM45,

Merci pour votre retour.

J'ai tenté de faire la manipulation mais rien ne s'affiche dans la fenêtre d'exécution ?

Bonjour,

Perso je vois pas l’intérêt d'utiiiser VBA pour poser une formule... Enfin si tu y tiens je te donne les 2 soluces :

Sub ImportFiles() 'avec formule
  Dim Ctr, Formule, FileList
  Range(Range("A2"), Range("A2").End(xlDown)).Clear
  FileList = Application.GetOpenFilename(, , , , True)
  For Ctr = 1 To UBound(FileList)
    Range("A" & Ctr + 1) = FileList(Ctr)
    Range("B" & Ctr + 1) = Dir(FileList(Ctr))
    Range("C" & Ctr + 1).Formula = "=left(B" & Ctr + 1 & ",len(B" & Ctr + 1 & ")-4)"
  Next
End Sub
Sub ImportFiles() 'sans formule
  Dim Ctr, Formule, FileList
  Range(Range("A2"), Range("A2").End(xlDown)).Clear
  FileList = Application.GetOpenFilename(, , , , True)
  For Ctr = 1 To UBound(FileList)
    Range("A" & Ctr + 1) = FileList(Ctr)
    Range("B" & Ctr + 1) = Dir(FileList(Ctr))
    Range("C" & Ctr + 1) = Split(Range("B" & Ctr + 1), ".")(0)
  Next
End Su

A+

Bonjour galopin01,

Merci pour le retour.

Je fais l'essai pour voir : mais est ce que ma formule est complètement fausse ?

Ou juste des erreurs dedans ?

Re,

Dans votre formule vous mélangez code VBA et instruction de formule

La bonne instruction était

"=DROITE(B"  & Ctr+1 & ");NBCAR(B" & Ctr+1 & ")-4"

A+

Re,

Merci pour la bonne synthaxe : mais quand je l'insers dans mon code, j'ai encore un message d'erreur :

sshot 2

Re,

Sur quelle ligne.. copie d'écran SVP

Re,

Tout d'abord je souhaite une très bonne année aux participants de la conversation et aux autres aussi bien sur ^^

L'erreur est sur la ligne de code fournie :

Range("C" & Ctr + 1).Formula = "=DROITE(B" & Ctr + 1 & ");NBCAR(B" & Ctr + 1 & ")-4"

Bonjour,

En français il faut utiliser FormulaLocal non ? Sais pas, je ne l'utilise jamais.

A+

Non à priori, le code suivant génère la même erreur :

Range("C" & Ctr + 1).FormulaLocal = "=DROITE(B" & Ctr + 1 & ");NBCAR(B" & Ctr + 1 & ")-4"

Bonjour samsam07

Utilisez donc la fenêtre d'exécution

image

Vous pouvez vous apercevoir que vous avez une erreur dans votre formules, en revanche si vous faites

? "=DROITE(B" & Ctr + 1 & ";NBCAR(B" & Ctr + 1 & ")-4)"

=DROITE(B1;NBCAR(B1)-4)

Là ça devrait fonctionner

A+

Bonjour BrunoM45,

Effectivement il y avait une erreur dans la formule : tout fonctionne à présent

@galopin01:

Votre code fonctionne également sans problème

Un grand merci à vous pour votre aide ^^

Bonne journée. A+

Rechercher des sujets similaires à "aide code insertion formule vba"