|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Problème avec formule IF VBA excel [ Langages dérivés / VBA ] (avyrex1926)
Informations & options pour cette discussion
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é 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
Problème avec les boucles For To Next qui s'entremèlent [ par pedrito53 ]
Bonjour à tous, tout d'abord bonne année!J'ai un problème qui me bloque aujourd'hui, c'est que j'ai un projet à finir pour la fin de la semaine et là
Comment attribuer plusieurs couleurs à une chaine de caracteres située dans une cellule [ par pm78000 ]
Bonjour,Je bloque depuis 2 jours sur ce problème. Je travaille avec des numéros de risques à 2 dates différentes. J'insère chaque numéro de risque dan
boucles imbriquées [ par jodeciters ]
bonjour, j'ai un souci sur une partie de code vba pour excel:voici le pb: je dois imprimer des plannings individuels pour des stagiaires en formation.
Porblème Boucle + récupération de données [ par Zouzou12345 ]
Bonjour à tous! Je suis débutante en vba et j'ai un problème qui dure depuis 2 jours! J'ai crée un Userform avec 2 listes déroulantes où on choisit le
modification onglet créé VBA [ par masterfab2 ]
Bonjour,en esperant avoir posté dans la bonne section...Depuis quelques temps j'essai d'apprendre qqs rudiments de VBA pour compléter mes connaissance
vba-excel somme sous 2 conditions [ par ephuridai ]
Bonjour,ceci est une question pour moi tres hardue. Aussi, je la pose avant de quitter mon poste, et vous aurez jusqu'à demain après midi pour y réflé
Coloriser une cellule EXCEL [ par VB_PtitCat ]
Bonjour,j'aimerai colorier mes cellules en vert,uniquement si les deux premier caractères d'une cellule sont OK!Voilà mon code, qui ne marche pas, si
Formule Excel sous VBA [ par marjorykwet ]
Bonjour, je programme un fichier excel, dans une variable je met le numero de la ligne puis dans une formule j'utilise cette variable pour faire une
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|