VBA erreur fin d'instruction formule SI
Fermé
Marg12
-
16 déc. 2020 à 13:55
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 16 déc. 2020 à 17:16
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 16 déc. 2020 à 17:16
A voir également:
- VBA erreur fin d'instruction formule SI
- Erreur 0x80070643 - Guide
- Formule si et - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel - Guide
- Mise en forme conditionnelle excel formule si - Guide
5 réponses
jee pee
Messages postés
40279
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 septembre 2024
9 350
16 déc. 2020 à 14:01
16 déc. 2020 à 14:01
Bonjour,
Juste une remarque de syntaxe, ne pratiquant pas VBA,
Ton =SI(O cela se veut être un zéro ? alors non c'est un O, voilà un 0
Juste une remarque de syntaxe, ne pratiquant pas VBA,
Ton =SI(O cela se veut être un zéro ? alors non c'est un O, voilà un 0
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
16 déc. 2020 à 14:17
16 déc. 2020 à 14:17
Bojour Marg12, jee pee
Tu es en Vba ?
Tu es en Vba ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
Modifié le 16 déc. 2020 à 14:31
Modifié le 16 déc. 2020 à 14:31
"=SI(O" & i + 8 & ">=108;"Oui";"Non")"
ta formu concerne une autre feuille ?
si on est sur la m^me feuille
"O" 1 I+8 est la m^me cellule que Cells(i + 8, 15)
Veux tu remplacer >+108 par oui ou non ?
mystere...
ta formu concerne une autre feuille ?
si on est sur la m^me feuille
"O" 1 I+8 est la m^me cellule que Cells(i + 8, 15)
Veux tu remplacer >+108 par oui ou non ?
mystere...
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
16 déc. 2020 à 15:50
16 déc. 2020 à 15:50
Donc c 'est N8 >=108 et non O8
with Sheets("AE")
.Cells(i+8, "O") = IIf(.Cells(i+8, "N") >= 108, "oui", "non")
end with
with Sheets("AE")
.Cells(i+8, "O") = IIf(.Cells(i+8, "N") >= 108, "oui", "non")
end with
Non elle ne fonctionne pas
En fait c'est bien la cellule O8
La formule doit se retrouver en P8
J'ai fait un décalage mais elle ne fonctionne quand même pas
Il faut que je puisse remplir les cellules en colonne O et que la formule se modifie en meme temps
La formule dans la cellule est la suivante =SI(H8="Oui";"Oui";SI(O8>=108;"Oui";"Non"))
et celle dans VBA
Sheets("AE").Cells(i + 8, 15) = "=SI(H" & i + 8 & "="Oui";"Oui";SI(O" & i + 8 & ">=108;"Oui";"Non"))"
J'ai rajouté une condition
En fait c'est bien la cellule O8
La formule doit se retrouver en P8
J'ai fait un décalage mais elle ne fonctionne quand même pas
Il faut que je puisse remplir les cellules en colonne O et que la formule se modifie en meme temps
La formule dans la cellule est la suivante =SI(H8="Oui";"Oui";SI(O8>=108;"Oui";"Non"))
et celle dans VBA
Sheets("AE").Cells(i + 8, 15) = "=SI(H" & i + 8 & "="Oui";"Oui";SI(O" & i + 8 & ">=108;"Oui";"Non"))"
J'ai rajouté une condition
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
>
Marg12
16 déc. 2020 à 16:19
16 déc. 2020 à 16:19
Un coup c'est O8, un coup c'est N8 un coup c'est P8
N'IMPORTE QUOI si ce n'est pas se moquer du monde...
N'IMPORTE QUOI si ce n'est pas se moquer du monde...
Marg12
>
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
16 déc. 2020 à 16:21
16 déc. 2020 à 16:21
Je me suis trompée et fait des modifications je suis désolée ça arrive a tout le monde je pense
Sous le commentaire j'ai mis le code si vous voulez
Sous le commentaire j'ai mis le code si vous voulez
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
16 déc. 2020 à 16:11
16 déc. 2020 à 16:11
Bonjour,
Salut Michel,
"Normalement", pour ajouter une formule dans une cellule, on utilise sa propriété "Formula" (ou FormulaLocal ou FormulaR1C1 au choix, selon le but recherché et la méthode...).
Dans le style :
Ne pas oublier, dans ce cas, de doubler les guillemets.
Sinon, pour résoudre le souci, l'intégralité du code pourra s'avérer nécessaire...
Salut Michel,
"Normalement", pour ajouter une formule dans une cellule, on utilise sa propriété "Formula" (ou FormulaLocal ou FormulaR1C1 au choix, selon le but recherché et la méthode...).
Dans le style :
Sub essai() ActiveCell.Formula = "=IF(H8=""Oui"",""Oui"",IF(O8>=108,""Oui"",""Non""))" End Sub
Ne pas oublier, dans ce cas, de doubler les guillemets.
Sinon, pour résoudre le souci, l'intégralité du code pourra s'avérer nécessaire...
Je vous met le code complet pour que vous repreniez mieux je pense Je vous remercie pour votre patience en tout cas.
Private Sub btn_valider_Click() 'Choix des variables Dim i As Integer Dim n As Integer Dim compt As Integer 'Choix des variables texte Dim nom_lot As String Dim eqt_lot As String i = 0 n = 0 compt = 1 Sheets("BDD").Visible = True Dim reponse As String reponse = MsgBox("Confirmez la validation ? ", vbOKCancel) If reponse = 1 Then 'vérification qu'il y a déjà des valeurs dans le AE While Sheets("BDD").Cells(n + 2, 1) <> "" For i = 0 To liste_récap.ListCount - 1 If liste_récap.List(i, 0) = Sheets("BDD").Cells(n + 2, 2) And liste_récap.List(i, 1) = Sheets("BDD").Cells(n + 2, 3) Then Sheets("AE").Cells(compt + 7, 1) = compt Sheets("AE").Cells(compt + 7, 2) = Sheets("BDD").Cells(n + 2, 2) Sheets("AE").Cells(compt + 7, 3) = Sheets("BDD").Cells(n + 2, 3) Sheets("AE").Cells(compt + 7, 4) = Sheets("BDD").Cells(n + 2, 4) Sheets("AE").Cells(compt + 7, 5) = Sheets("BDD").Cells(n + 2, 5) Sheets("AE").Cells(compt + 7, 6) = Sheets("BDD").Cells(n + 2, 6) Sheets("AE").Cells(compt + 7, 7) = Sheets("BDD").Cells(n + 2, 7) Sheets("AE").Cells(compt + 7, 8) = Sheets("BDD").Cells(n + 2, 8) Sheets("AE").Cells(i + 8, 12) = "=I" & i + 8 & "*J" & i + 8 & "*K" & i + 8 Sheets("AE").Cells(compt + 7, 13) = Sheets("BDD").Cells(n + 2, 9) Sheets("AE").Cells(i + 8, 15) = "=L" & i + 8 & "*N" & i + 8 ' Bonne formule =SI(H8="Oui";"Oui";SI(O8>=108;"Oui";"Non")) ' formule sous VBA Sheets("AE").Cells(i + 8, 15) = "=SI(H" & i + 8 & "="Oui";"Oui";SI(O" & i + 8 & ">=108;"Oui";"Non"))" Sheets("AE").Cells(compt + 7, 17) = Sheets("BDD").Cells(n + 2, 10) compt = compt + 1 End If Next i n = n + 1 Wend End If Sheets("AE").Activate Sheets("Création AE").Visible = False Sheets("temp").Visible = False Sheets("BDD").Visible = False End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
>
Marg12
16 déc. 2020 à 16:25
16 déc. 2020 à 16:25
Bon.
Faisons simple.
Que veux-tu faire avec ce code? Qu'est censée faire cette macro?
Parce que là , tu boucles sur toutes les cellules de la colonne A de ta feuille BDD, puis boucle sur toute la listBox...
Ça semble être un traitement inutile.
En mots simples, dis nous ce que tu fait et ce que tu souhaites obtenir...
Faisons simple.
Que veux-tu faire avec ce code? Qu'est censée faire cette macro?
Parce que là , tu boucles sur toutes les cellules de la colonne A de ta feuille BDD, puis boucle sur toute la listBox...
Ça semble être un traitement inutile.
En mots simples, dis nous ce que tu fait et ce que tu souhaites obtenir...
Marg12
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
Modifié le 16 déc. 2020 à 16:32
Modifié le 16 déc. 2020 à 16:32
La feuille BDD est une base de donnée qui permet de réunir toutes les informations
La feuille création AE permet a une personne de choisir par exemple toutes les personnes qui sont dans le 13 et le 83 mais qui ont plus de 50 ans
Et la feuille AE permet d'avoir toutes les informations concernant ses personnes la
Un simple filtre ne suffirai pas car c'est juste l'idée en soi c'est plus complexe que ca
Et grâce a la macro un tableau de synthese est fait j'ai juste à remplir mes colonnes I,J,K, H et O
Est ce que s'est assez explicite ?
La feuille création AE permet a une personne de choisir par exemple toutes les personnes qui sont dans le 13 et le 83 mais qui ont plus de 50 ans
Et la feuille AE permet d'avoir toutes les informations concernant ses personnes la
Un simple filtre ne suffirai pas car c'est juste l'idée en soi c'est plus complexe que ca
Et grâce a la macro un tableau de synthese est fait j'ai juste à remplir mes colonnes I,J,K, H et O
Est ce que s'est assez explicite ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
>
Marg12
16 déc. 2020 à 16:58
16 déc. 2020 à 16:58
Est ce que s'est assez explicite ?
Raté, non.
Bon, mis à part ça, essaye ceci :
Sheets("AE").Cells(i + 8, 15).Formula = "=IF(H" & i + 8 & "=""Oui"",""Oui"",IF(O" & i + 8 & ">=108,""Oui"",""Non""))"
Marg12
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
16 déc. 2020 à 17:07
16 déc. 2020 à 17:07
Alors je suis vraiment désolée en tout cas mais ton code fonctionne parfaitement ! ^^
Merci beaucoup de ta patience c'est tres gentil
Est ce que tu pourrais m'expliquer comment tu as fait ?
Merci beaucoup de ta patience c'est tres gentil
Est ce que tu pourrais m'expliquer comment tu as fait ?
16 déc. 2020 à 14:05
Non c'et sensé etre un O fin la colonne O en tout cas pas un zéro