Macro: division de variable

baara

XLDnaute Nouveau
Bonjour à toutes et tous,

Voila la macro que j'utilise pour récuperer un tas d'information sur tout les fichiers excel d'un dossier.
Mais j'ai un petit problème avec ma macro car les partie en rouge ne fonctionne pas en effet je souhaiterai faire une division de deux variable qui seraient:
a(10)=a(9)/a(7)
a(15)=a(14)/a(12)
a(20)=a(19)/a(17)

la fonction si c'est celle que j'utilise directement sur excel sans passer par les macro. elle me permet dans le cas ou soit le numérateur ou le dénominateur sont égal à 0, et bien de ne pas faire le calcul, ca mévite d'avoir une anotation moche dans ma cellule me précisant que la division par 0 est impossible.

Mais je n'arrive pas à faire cette division!!!! si quelqu'un connaît une astuce se serait sympa. Merci.




Sub essai()
Dim fs, f, f1, fc, s
Dim a(27)
Application.ScreenUpdating = False
specdossier = ActiveWorkbook.Path
fic = ActiveWorkbook.Name
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
pos = 3
For Each f1 In fc
s = f1.Name
b = Right(s, 4)
If b = "xlsx" And s <> ActiveWorkbook.Name Then
Workbooks.Open Filename:=specdossier & "\" & s
Sheets("Résultat").Activate
a(1) = Cells(2, 2)
a(2) = Cells(2, 1)
a(3) = Cells(1, 1)
a(4) = "Non renseigné"
a(5) = "Non renseigné"
a(6) = Cells(5, 3)
a(7) = Cells(5, 4)
a(8) = Cells(5, 6)
a(9) = a(7) - a(8)
a(10) =SI(a(9)=0;"";SI(a(7)=0;"";a(9)/a(7))) a(11) = Cells(9, 3)
a(12) = Cells(9, 4)
a(13) = Cells(9, 6).Value + Cells(9, 7).Value
a(14) = a(12) - a(13)
a(15) = SI(a(14)=0;"";SI(a(12)=0;"";a(14)/a(12))) a(16) = Cells(38, 3)
a(17) = Cells(38, 4)
a(18) = Cells(38, 6)
a(19) = a(17) - a(18)
a(20) = SI(a(19)=0;"";SI(a(17)=0;"";a(19)/a(17))) a(21) = a(7) + a(12) + a(17)
a(22) = Cells(43, 8)
a(23) = a(22) / a(23)
a(24) = Cells(9, 9)
a(25) = Cells(9, 10)
a(26) = Cells(44, 8)
a(27) = Cells(45, 8)
ActiveWorkbook.Close
Windows(fic).Activate
Sheets("feuil1").Activate
For u = 1 To 27
Cells(pos, u) = a(u)

Next u
ActiveSheet.Hyperlinks.Add Anchor:=Cells(pos, 3), Address:=specdossier & "\" & s, TextToDisplay:=a(3)
pos = pos + 1
End If
Next
End Sub
 

baara

XLDnaute Nouveau
Re : Macro: division de variable

j'ai mis ce code, mais la division doit poser problème... il me met erreur d'execution 13 ; incomptatibilité de type.
et il fluote en jaune cette partie: a(10) = a(9) / a(10)

Sub essai()
Dim fs, f, f1, fc, s
Dim a(27)
Application.ScreenUpdating = False
specdossier = ActiveWorkbook.Path
fic = ActiveWorkbook.Name
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
pos = 3
For Each f1 In fc
s = f1.Name
b = Right(s, 4)
If b = "xlsx" And s <> ActiveWorkbook.Name Then
Workbooks.Open Filename:=specdossier & "\" & s
Sheets("Résultat").Activate
a(1) = Cells(2, 2)
a(2) = Cells(2, 1)
a(3) = Cells(1, 1)
a(4) = "Non renseigné"
a(5) = "Non renseigné"
a(6) = Cells(5, 3)
a(7) = Cells(5, 4)
a(8) = Cells(5, 6)
a(9) = a(7) - a(8)
a(10) = ""
If a(9) <> 0 And a(7) <> 0 Then a(10) = a(9) / a(10)
a(11) = Cells(9, 3)
a(12) = Cells(9, 4)
a(13) = Cells(9, 6).Value + Cells(9, 7).Value
a(14) = a(12) - a(13)
a(15) = ""
If a(15) <> 0 And a(13) <> 0 Then a(10) = a(15) / a(13)
a(16) = Cells(38, 3)
a(17) = Cells(38, 4)
a(18) = Cells(38, 6)
a(19) = a(17) - a(18)
a(20) = ""
If a(19) <> 0 And a(17) <> 0 Then a(10) = a(19) / a(17)
a(21) = a(7) + a(12) + a(17)
a(22) = Cells(43, 8)
a(23) = a(22) / a(23)
a(24) = Cells(9, 9)
a(25) = Cells(9, 10)
a(26) = Cells(44, 8)
a(27) = Cells(45, 8)
ActiveWorkbook.Close
Windows(fic).Activate
Sheets("feuil1").Activate
For u = 1 To 27
Cells(pos, u) = a(u)

Next u
ActiveSheet.Hyperlinks.Add Anchor:=Cells(pos, 3), Address:=specdossier & "\" & s, TextToDisplay:=a(3)
pos = pos + 1
End If
Next
End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro: division de variable

Bonjour baara

si cette ligne est jaune
If a(9) <> 0 And a(7) <> 0 Then a(10) = a(9) / a(10)

c'est parce qu'à la ligne précédente tu as
a(10) = ""

donc si la condition est vérifiée
a(10) = a(9) / ""

ce qui provoque une erreur

à+
Philippe
 

Discussions similaires

Réponses
17
Affichages
911

Statistiques des forums

Discussions
312 485
Messages
2 088 817
Membres
103 971
dernier inscrit
abdazee