Problème d'objet erreur 404
Bonjours,
pour mon code ci-dessous j'ai un message d'erreur "erreur d'execution 424" objet requis
pour l'écriture de mon avant derniere ligne de code
"sheet1.Range("E5").Value = somme_usd"
Sub test()
Dim tableau As Variant
Dim i As Variant
Dim j As Variant
Dim somme_usd As Integer
Dim nb_usd As interger
Dim somme_usd_eur As Integer
somme = 0
nb_usd = 0
For i = 3 To 9
If (Range("C" & i).Value = "usd") And (Range("F" & i).Value = "bloqué") Then
nb_usd = nb_usd + 1
somme_usd = somme_usd + Range("d" & i).Value
'determiner les deux montants max et leur lignes et éqivalence en eu
End If
Next
'creer une fonction pour faire le change usd /eur
somme_usd_eur = (somme_usd * 0.89261)
MsgBox ("le nombre d'opé usd est égale à" & nb_usd)
MsgBox ("le somme opé usd est égale à" & somme_usd)
'placer la valeur de somme_usd dans la cellule E5 feuille1
sheet1.Range("E5").Value = somme_usd
End Sub
pour mon code ci-dessous j'ai un message d'erreur "erreur d'execution 424" objet requis
pour l'écriture de mon avant derniere ligne de code
"sheet1.Range("E5").Value = somme_usd"
Sub test()
Dim tableau As Variant
Dim i As Variant
Dim j As Variant
Dim somme_usd As Integer
Dim nb_usd As interger
Dim somme_usd_eur As Integer
somme = 0
nb_usd = 0
For i = 3 To 9
If (Range("C" & i).Value = "usd") And (Range("F" & i).Value = "bloqué") Then
nb_usd = nb_usd + 1
somme_usd = somme_usd + Range("d" & i).Value
'determiner les deux montants max et leur lignes et éqivalence en eu
End If
Next
'creer une fonction pour faire le change usd /eur
somme_usd_eur = (somme_usd * 0.89261)
MsgBox ("le nombre d'opé usd est égale à" & nb_usd)
MsgBox ("le somme opé usd est égale à" & somme_usd)
'placer la valeur de somme_usd dans la cellule E5 feuille1
sheet1.Range("E5").Value = somme_usd
End Sub
2 réponses
-
Essaye ce code VBA :
Option Explicit Function EnEuros(mnt As Currency) As Currency EnEuros = mnt * 0.89261 End Function Sub test() Dim nb_usd As Integer, mnt As Currency, maxusd As Currency Dim somme_usd As Currency, lig As Long, lig_maxusd As Long For lig = 3 To 9 If Range("C" & lig) = "usd" And Range("F" & lig) = "bloqué" Then mnt = Val(Range("D" & lig)) If mnt > 0 Then nb_usd = nb_usd + 1: somme_usd = somme_usd + mnt If mnt > maxusd Then maxusd = mnt: lig_maxusd = lig End If End If Next lig MsgBox "nombre opé usd : " & nb_usd & vbLf & vbLf _ & "somme opé usd : " & somme_usd & vbLf _ & "somme opé eur : " & EnEuros(somme_usd) & vbLf & vbLf _ & "ligne " & lig_maxusd & " : maxusd = " & maxusd & vbLf _ & "maxusd en eur : " & EnEuros(maxusd) & " €" Worksheets("Feuil1").[E5] = somme_usd End Sub
Merci de me dire si ça te convient.
-
-
@wil_2638
a) Tu peux écrire plus simplement : Feuil1.[E5] = somme_usd
et ça fera la même chose : résultat identique.
b) Dans mon code VBA, la sub test() se termine par :
Worksheets("Feuil1").[E5] = somme_usd
⚠ J'espère que tu connais la différence entre ces 2 instructions !
Ce n'est pas juste une autre façon d'écrire la même instruction :
c'est très important, et ce n'est pas du tout la même chose !
----------------------------------------------
L'instruction [Feuil1!E5] = somme_usd est synonyme de ma
1ère instruction, donc elle aussi est différente de la tienne.
Worksheets(1).[E5] = somme_usd est une instruction valide,
qui peut avoir un résultat différent de nos 2 instructions.
----------------------------------------------
Tu peux laisser ton instruction tel que, à condition de bien
savoir ce que tu fais ! ;)
-
-
Bonjour à tous les deux
Essaies ceci pour la ligne "fautive"
Sheets(1).Range("E5").Value = somme_usd
Cdlmnt