Erreur dans ma procedure vba
frederique
-
frederique -
frederique -
Bonjour a tous, j'suis nouvelle sur le site et gspr que vous pourrez m'aider.
G écrit cette proc:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 13/05/2005 par rieusset
'
Dim a As Integer
a = Range("B18").Value
If Range("B18").Value < Range("Avancement!I16").Value Then
Range("O4").Formula = "= Sheets(Effectifs!)Cells(5, a).Value "
End If
If a > Range("Avancement!I16") Then
Range("O4").Value = "=1+(Cells(18,2)-Avancement!Cells(16,9))/(Avancement!Cells(16,9))"
End If
End Sub
Mais elle fonctionne pas a mon avis g des problèmes pour désigner mes feuilles
ma feuille courant est Calcul Indicateur et l'autre feuille est Avancement et la dernière est Effectifs
moi je veux créer une variable "a" qui soit la valeur inscrite dans la cellule B18 de la feuille"Calcul indicateur"
Si "a"< valeur cellule I16(feuille "Avancement")
alors
cellule"O4"valeur=valeur cellule col "a" ligne"5" de la feuille "Effectifs"
et si "a">valeur I16 (feuill Avancement)
alors
valeur O4=1+(B18-I16(feuil avancement))/(I16 (feuill avancement))
je pense que je me trompe dans l'écriture formelle, j'espere que vous saurez m'aider
G écrit cette proc:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 13/05/2005 par rieusset
'
Dim a As Integer
a = Range("B18").Value
If Range("B18").Value < Range("Avancement!I16").Value Then
Range("O4").Formula = "= Sheets(Effectifs!)Cells(5, a).Value "
End If
If a > Range("Avancement!I16") Then
Range("O4").Value = "=1+(Cells(18,2)-Avancement!Cells(16,9))/(Avancement!Cells(16,9))"
End If
End Sub
Mais elle fonctionne pas a mon avis g des problèmes pour désigner mes feuilles
ma feuille courant est Calcul Indicateur et l'autre feuille est Avancement et la dernière est Effectifs
moi je veux créer une variable "a" qui soit la valeur inscrite dans la cellule B18 de la feuille"Calcul indicateur"
Si "a"< valeur cellule I16(feuille "Avancement")
alors
cellule"O4"valeur=valeur cellule col "a" ligne"5" de la feuille "Effectifs"
et si "a">valeur I16 (feuill Avancement)
alors
valeur O4=1+(B18-I16(feuil avancement))/(I16 (feuill avancement))
je pense que je me trompe dans l'écriture formelle, j'espere que vous saurez m'aider
A voir également:
- Erreur dans ma procedure vba
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Dans la table des matières du document à télécharger, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- J'aime par erreur facebook notification - Forum Facebook
si alors voilà un script qui doit répondre à ton besoin. Par contre c'est peut être un peu long mais au moins assez "propre" :
================================
Sub calcul()
Dim WS_Indicateurs As Worksheet, WS_Avancement As Worksheet, WS_Effectifs As Worksheet
Dim Cel_B18 As Range, Cel_A5 As Range, Cel_I16 As Range, Cel_O4 As Range
Set WS_Avancement = ThisWorkbook.Worksheets("Avancement")
Set WS_Indicateurs = ThisWorkbook.Worksheets("Calcul Indicateurs")
Set WS_Effectifs = ThisWorkbook.Worksheets("Effectifs")
Set Cel_B18 = WS_Indicateurs.Range("B18")
Set Cel_O4 = WS_Indicateurs.Range("O4")
Set Cel_I16 = WS_Avancement.Range("I16")
Set Cel_A5 = WS_Effectifs.Range("A5")
If Cel_B18.Value < Cel_I16.Value Then
Cel_O4.Value = Cel_A5.Value
End If
If Cel_B18.Value > Cel_I16.Value Then
Cel_O4.Value = 1 + (Cel_B18.Value - Cel_I16.Value) / Cel_I16.Value
End If
'
End Sub
===================================
Voilà, bonne chance pour la suite
Mattiou
Par contre mon "a" est une variable égale a la valeur inscrite dans la cellule B18
Je n'utilise donc pas A5 de la page effectifs mais la cellule de la ligne 5 et colonne "a" ...
désolé j'avais mal compris, cela dit ça ne change pas trop le fonctionnement, il suffit de récupérer la valeur de la cellule B18 dans une variable, et ensuite au moment de la définition de Cel_A5 de la récupérer à l'aide d'un offset avec 5 et a ...
Voili voilou ...
O4.formula=WorkSheets("effectifs")Cells(5,a) ?
-> Dim a as Integer
...
-> a = Cel_B18.Value
...
-> Set Cel_A5 = WS_Effectifs.Cells(5, a)
....
et le reste du code ne change pas ... Voilà
Cordialement,