Code VBA fonction SI(ET

Bonjour à tous,

N'ayant pas trouvé de réponse dans les autres posts en lien, je me permet de poster ma demande

Je souhaite écrire le codeVBA de la fonction suivante: =SI(ET(A13="";F13="");G13;"")

Je souhaite ensuite que cette formule soit tirée jusqu'à la ligne 1000.

J'ai besoin du code car après, ce code sera appliqué à une cinquantaine de feuilles.

Dans l'attente de vos retours, merci d'avance,

Tom

Bonjour,

En supposant que la formule cité en question(=SI(ET(A13="";F13="");G13;"")) se trouve en H13

Mais vous n'avez trop cherché, car c'est le B.A.BA d'EXCEL

Sub test()
Dim i As Integer
    For i = 13 To 1000
        If Cells(i, 1).Value = "" And Cells(i, 6).Value = "" Then
            Cells(i, 8).Value = Cells(i, 7).Value
            Else
            Cells(i, 8).Value = ""
        End If
    Next i
End Sub

Bonjour,

une version qui met les formules plutôt que leur résultat

Sub aargh()

f = "=IF(AND(A13="""",F13=""""),G13,"""")"
Range("H13").Formula = f
Range("H13").AutoFill Destination:=Range("H13:H1000"), Type:=xlFillDefault

End Sub

Re,

merci pour vos 2 réponses.

M12, je suis débutant et autodidacte sur excel. Je n'ai pas encore eu le temps de me former sur les bases du vba, je ne fais pour le moment que des assemblages de codes mais n'arrive pas encore a tous les écrire correctement.

Par exemple je dois ecrire le code de la formule suivante: =SI(L19<>"";NB.SI(C:C;C18);"")

Une idée??

Merci d'avance,

Tom

Re,

Dans ce cas utilise l'enregistreur de macro, cela te fera une idée de la formule (si c'est une formule simple)

pour ta deuxieme formule avec l'enregisteur

ActiveCell.FormulaR1C1 = "=IF(R[8]C[11]<>"""",COUNTIF(C[2],R[7]C[2]),"""")"

M12, merci pour ta réponse.

Je ne souhaite pas utiliser l'enregistreur pour plusieurs raisons: -Je n'apprendrai pas le VBA en l'utilisant

-Je vais ensuite utiliser le code pour tirer cette formule jusqu'en ligne 1000.

J'ai testé comme ceci mais ça ne fonctionne point: (meme méthode que h2so4

g = "=IF(L13<>"""";COUNTIF(C:C;C20);""""),"""")"
Range("m13").Formula = g
Range("m13").AutoFill Destination:=Range("m13:m1000"), Type:=xlFillDefault

Peut-être peux-tu me le traduire avec la même forme que ta première réponse au post?

Merci d'avance,

Tom

Re,

A tester (pas toujours facile sans support)

Sub test()
Dim i As Integer
    For i = 13 To 1000
        If Cells(i, 12).Value <> "" Then
            Cells(i, 13).Value = Application.CountIf([c:c], Cells(i - 1, 3))
            Else
            Cells(i, 12).Value = ""
        End If
    Next i
End Sub

Re,

Voici le fichier joint.

Tu trouveras dans le modul ma demande.

MErci de ton retour

6classeur1.zip (24.17 Ko)

Re,

Je comprend pas tout

En commentaire

'Je souhaite faire de même avec la formule suivante à partir de M13: =SI(M13<>"";NB.SI(C:C;C12);""),"")

dans ton code

G = "=IF(L13<>"""";COUNTIF(C:C;C20);""""),"""")"

C'est L13 ou M13 et c'est C12 ou C20 ?

C'est L13 ou M13 et c'est C12 ou C20 ?

En effet j'ai fait une erreur c'est bien C12.

Je veux que la formule se fasse en M13 avec la formule suiavnte: =IF(L13<>"";nb.si(C:C;C12);""),"")

Re,

A tester

14classeur1-1.zip (36.73 Ko)

C'est parfait merci !!

Rechercher des sujets similaires à "code vba fonction"