Accueil > Forum > > > > Problème avec formule IF VBA excel
Problème avec formule IF VBA excel
samedi 5 avril 2008 à 00:32:07 |
Problème avec formule IF VBA excel

avyrex1926
|
Bonjour à tous, J'aurais besoin d'aide pour inserer cette formule excel que j'ai fais dans un script VBA. Voici la formule: =SI(D12<0.899,"INF",SI(D12>0.96,"SUP",SI(D12<=0.899,"90à92",SI(D12<0.9299,"90à92",SI(D12<=0.93,"92à9 5",SI(D12<=0.959,"92à95","")))))). Je voudrais l'inserer dans le script: Dim i As Integer, DerL As Integer, r As Integer, Opid As String DerL = Sheets(2).Cells(Rows.Count, 3).End(xlUp).Row For i = 2 To DerL Opid = Sheets(2).Cells(i, 3).Text Set C = Sheets(1).Range("A:A").Find(what:=Opid, lookat:=xlWhole) If Not C Is Nothing Then r = C.Row Sheets(2).Cells(i, 5) = Sheets(1).Cells(r, 2) Sheets(2).Cells(i, 6) = Sheets(1).Cells(r, 3) Sheets(2).Cells(i, 10) = LA VALEUR DE LA FOURMULE PLUS HAUT Sheets(2).Cells(i, 12) = Sheets(1).Cells(r, 4) Else 'MsgBox Opid & " n'existe pas dans la feuille Employés" End If Next i MsgBox "Terminé" End Sub Comment faire svp? Merci de votre aide
|
|
samedi 5 avril 2008 à 04:09:29 |
Re : Problème avec formule IF VBA excel

MPi
|
Réponse acceptée !
Voici comment tu pourrais inscrire la formule dans la cellule:
Sheets(2).Cells(i, 10). Formula = "IF(D12<0.899,"INF",IF(D12>0.96,"SUP",IF(D12<=0.899,"90à92",IF(D12<0.9299,"90à92",SI(D12<=0.93,"92à9 5",IF(D12<=0.959,"92à95",""))))))" En utilisant Formula plutôt que FormulaLocal, le programme pourra rouler sur des machines configurées en français ou en anglais. Il faut, par contre, coder la formule en anglais. MPi² Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
|
|
samedi 5 avril 2008 à 04:12:13 |
Re : Problème avec formule IF VBA excel

avyrex1926
|
Je sais pas si ça serais plus rapide de la façon du ta l'a fais ou bien de cette façon ci:
Dim lgLig As Long For lgLig = 12 To Range("D" & Cells.Rows.Count).End(xlUp).Row If Range("D" & lgLig) >= 0 Then Range("J" & lgLig) = "INF" End If Next lgLig For lgLig = 12 To Range("D" & Cells.Rows.Count).End(xlUp).Row If Range("D" & lgLig) >= 0.9 Then Range("J" & lgLig) = "90à92" End If Next lgLig For lgLig = 12 To Range("D" & Cells.Rows.Count).End(xlUp).Row If Range("D" & lgLig) >= 0.93 Then Range("J" & lgLig) = "93à95" End If Next lgLig For lgLig = 12 To Range("D" & Cells.Rows.Count).End(xlUp).Row If Range("D" & lgLig) >= 0.96 Then Range("J" & lgLig) = "SUP" End If Next lgLig
|
|
samedi 5 avril 2008 à 14:41:01 |
Re : Problème avec formule IF VBA excel

MPi
|
Réponse acceptée !
J'ai fait 3 tests: le premier avec 4 boucles comme tu l'écris : 7 à 7.5 secondes le deuxième avec une seule boucle et un Select Case mieux ordonné : 5.5 à 6 sec. le troisième avec la formule : 0.05 à 0.15 sec <<and the winner is !!!1er test (voir ton code...) 2e test (avec Select Case, mais aurait pu être des If...ElseIf...) Sub Test2() Dim lgLig As Long Dim Durée As Single Durée = Timer For lgLig = 12 To Range("D" & Cells.Rows.Count).End(xlUp).Row Select Case Range("D" & lgLig) Case Is >= 0.96 Range("J" & lgLig) = "SUP" Case Is >= 0.93 Range("J" & lgLig) = "93à95" Case Is >= 0.9 Range("J" & lgLig) = "90à92" Case Is >= 0 Range("J" & lgLig) = "INF" End Select Next lgLig MsgBox Format(Timer - Durée, "0.00") & " secondes" End Sub 3e test Dim nbLignes As Long Dim Durée As Single Durée = Timer nbLignes = Cells(Rows.Count, "D").End(xlUp).Row Range("J1:J" & nbLignes).Formula = "=IF(D12<0.899,""INF"",IF(D12>0.96,""SUP"",IF(D12<=0.899,""90à92"",IF(D12<0.9299,""90à92"",IF(D12<=0.93,""92à9 5"",IF(D12<=0.959,""92à95"",""""))))))" MsgBox Format(Timer - Durée, "0.00") & " secondes" De plus, il y a plus de conditions dans la formule que dans le code...MPi² Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
|
|
samedi 5 avril 2008 à 16:51:15 |
Re : Problème avec formule IF VBA excel

avyrex1926
|
Merci MPi, bonne différence en temps, c'est vrai  J'y vais avec 3e test Dim nbLignes As Long Dim Durée As Single Durée = Timer nbLignes = Cells(Rows.Count, "D").End(xlUp).Row Range("J1:J" & nbLignes).Formula = "=IF(D12<0.899,""INF"",IF(D12>0.96,""SUP"",IF(D12<=0.899,""90à92"",IF(D12<0.9299,""90à92"",IF(D12<=0.93,""92à9 5"",IF(D12<=0.959,""92à95"",""""))))))" MsgBox Format(Timer - Durée, "0.00") & " secondes"
|
|
Cette discussion est classée dans : cells, formule, sheets, if, opid
Répondre à ce message
Sujets en rapport avec ce message
Problème code pour modifier une ligne dans excel [ par eastpeople ]
Bonjour,J'ai un problème sur ce code :Private Sub OK_Click()If choix_act = "" Then erreur = MsgBox("Veuillez choisir une activité à modifier", vbOK
boucle et collage sur pages différentes [ par jodeciters ]
Bonjour,à la suite d'une boucle imbriquée du type de celle-ci:If Sheets("menu2").Cells(Ligmenu, 3).Value "" Then If Sheets("menu2").Cells(Ligm
Valeur des textbox selon 2 combobox [ par avyrex1926 ]
Bonjour, J'ai un probleme avec une macro. Si j'entre une valeur dans mon ComboBox2 (liste de ma colonne B), il me donne des choix pour mon ComboBox3
vb excel insertion d'une formule dans une cellule [ par prochristos ]
pouvez vous me dire ou cela cloche ? il s'agit d'inserer une formule de calcul dans une feuille excel dans laquelle i et j sont des variables entière
incombatibilité de type [ par nitho ]
Salut les gars j'ai une erreur je trouve pas :( [code=vb] oqp = Sheets(1).UsedRange.Address v = Split(oqp, "$") dernier = CInt(v(UBound(v))) tab_1 =
Lien hypertexte dans listbox [ par bigben42 ]
Bonjour, j'ai fait une userform sur laquelle se trouve une listbox qui se remplis de la manière suivante : [code=vb]For Each Cell In Sheets("Matrice")
Formule Excel [ par mimalo13 ]
Bonjour à tous, Je souhaiterais créer une formule VBA dans Excel qui ressemblerait à ceci. Malheureusement, n'étant expert en la matière, cette formu
macro vba excel [ par sigma17 ]
salut à tous,voici un code qui me permet de faire des tris dans une feuille et de récupérer les résultats pour les poster dans des cellules précises d
pb formule sous excel [ par chefsun49 ]
Bonjour, je ne suis pas devellopeur mais j'ai créés une formule dans excel le voici Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim nu
Filtre sur colonne et copie [ par sellaction ]
Bonjour, Débutant dans le domaine, je m'attelle à mettre en place une macro permettant de filtrer une cellule (AI1) et récupérer les valeurs des cel
Livres en rapport
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|