[Catégorie modifiée .Net -> VBA] Fonction SI + NB.SI Excel en VBA
pomdeterfrite
Messages postés1Date d'inscriptionvendredi 29 octobre 2010StatutMembreDernière intervention29 octobre 2010
-
29 oct. 2010 à 15:32
jordane45
Messages postés38138Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention17 avril 2024
-
29 oct. 2010 à 18:56
Bonjour à tous !
Je cherche désespéremment à transcrire une formule avec un NB.SI en code VBA (afin d'alléger les délais d'ouverture car j'ai une comparaison qui se fait entre 2 fichiers différents sur 4000 lignes)
Voici la formule que je veux remplacer :
SI(NB.SI('[TdB.xls]Status'!$G:$G;Base!C5)>0;"x";"")
elle permet de trouver au moins un cas dans la plage G:G d'un autre fichier (TdB.xls) égal à la colonne C de mon fichier actuel et si c'est le cas je met un "x" dans la colonne O de mon fichier actuel.
A voir également:
[Catégorie modifiée .Net -> VBA] Fonction SI + NB.SI Excel en VBA
jordane45
Messages postés38138Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention17 avril 2024344 29 oct. 2010 à 18:56
Bonjour,
tu pourrais passer par la fonction FIND et si il trouve une réponse, alors tu mets un X dans ta colonne O.
Exemple :
Sub test()
Val_a_chercher = Sheets("Base").Range("C5").Value
Workbooks("TdB.xls").Activate
bTrouve = cherchC("Status", Val_a_chercher)
If bTrouve = True Then
Sheets("Base").Range("O5").Value = "X"
End Sub
Function cherchC(nomF As String, valCherch As String) As Boolean
'fonction de recherche...
'**********************************************************
Dim vc As Variant
Sheets(nomF).Activate
Sheets(nomF).Range("G1").Activate
Set vc = Range("G:G").Find(what:=valCherch, lookAt:=xlWhole, After:=ActiveCell, SearchOrder:=xlByColumns, SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:=False, SearchFormat:=False)
If Not vc Is Nothing Then
cherchC = True
Else
cherchC = False
End If
End Function
A adapter à tes besoins.. mais je pense que ça devrait t'aider à avancer...
Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI