Utilisation d'une variable d'une Macro

j.pierrot

XLDnaute Nouveau
Bonsoir à tous,
Je cherche à utiliser chaque caractère des variables de Macro dans
des cellules d'une feuille pour remplir un imprimé bancaire. Chaque caractère est correspond à une cellule.
Pour explication :
Dim NbFact As String
NbFact = WorksheetFunction.Text(WorksheetFunction.CountA(Range("B:B")) - 1, "00000")

Voilà le bout de la macro qui va initialiser les cellules du nombre de factures


Range("X11").Select
ActiveCell.FormulaR1C1 = "=IF(MID(NbFact,1,1)<>""0"",MID(NbFact,1,1),"""")"
Range("Y11").Select
ActiveCell.FormulaR1C1 = "=IF(MID(NbFact,2,1)<>""0"",MID(NbFact,2,1),"""")"
Range("Z11").Select
ActiveCell.FormulaR1C1 = "=IF(MID(NbFact,3,1)<>""0"",MID(NbFact,3,1),"""")"
Range("AA11").Select
ActiveCell.FormulaR1C1 = "=IF(MID(NbFact,4,1)<>""0"",MID(NbFact,4,1),"""")"
Range("AB11").Select
ActiveCell.FormulaR1C1 = "=IF(MID(NbFact,5,1)<>""0"",MID(NbFact,5,1),"""")"



Le problème est que le résultat des formules ci-dessus est #NOM? sur chaque cellule car il ne reconnait pas ma variable. Comment faire ?
car je dois refaire ce travail pour le montant, la date de la remise, le numéro de bordereau ....

Un grand merci pour votre aide
 

kjin

XLDnaute Barbatruc
Re : Utilisation d'une variable d'une Macro

Bonsoir,
Et si tu éclairé ton propos avec un bout de fichier ?!
De variable, je n'en vois qu'une et je ne vois pas ce que tu veux faire en extrayant les caractères d'un nombre convertis en texte !
A+
kjin
 

Papou-net

XLDnaute Barbatruc
Re : Utilisation d'une variable d'une Macro

Bonsoir j.pierrot, kjin,

Normal, on ne peut pas traiter directement les feuilles avec des variables VBA.

Est-ce bien nécessaire d'avoir des formules dans tes cellule ? Si non, tu peux modifier ton code ainsi :

Code:
If(Mid(NbFact,1,1)<>"0" Then
  Range("X11") = Mid(NbFact,1,1) 
  Else
  Range("X11") = ""
End If
If(Mid(NbFact,2,1)<>"0" Then
  Range("Y11") = Mid(NbFact,1,1) 
  Else...

Ou plus élégamment au sein d'une boucle :

Code:
For n = 1 To 5
  If (Mid(NbFact, n, 1)) <> "0" Then
    Cells(11, n + 23) = Mid(NbFact, n, 1)
    Else
    Cells(11, n + 23) = ""
  End If
Next

Espérant t'avoir aidé.

Cordialement.
 

j.pierrot

XLDnaute Nouveau
Re : Utilisation d'une variable d'une Macro

Un grand merci Papou-net, je vais reporter tes formules dans ma macro. J'avais lu mon bouquin de VBA mais nulle part je n'ai pas trouvé la réponse et encore moins l'astuce. Je vais pouvoir finir.

Et oui, kjin, j'aurais pu mettre un bout de fichier. Je pensais avoir été suffisamment clair. Pour information, je dois reconstiuer un bordereau de banque et je n'ai trouvé que la solution une cellule égale un caractère pour être totalement conforme avec le bordereau vierge donné par la banque.

Bonne journée à tous. :)
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 961
Membres
103 066
dernier inscrit
bobfils