• Initiateur de la discussion Initiateur de la discussion Ilino
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ilino

XLDnaute Barbatruc
Forum Bonjour
je souhaiterai convertir la formule ( dans la cellule A3) suivante en VBA
Code:
=SI((NB.VIDE(B3:D3)+NB.VIDE(G3:H3)+NB.VIDE(K3:L3))=0;LIGNE(A3)-2;"" )
GRAZIE
NB : sorry cette formule doit etre appliquée sur un tableau de B3: b2014
 
Dernière édition:
Re : formule en vba

Ciao Ilino,

une petite astuce que j'utilise pour transformer mes formules dans vba:
tu lances l'enregistreur de macro, tu double-clik sur la cellule où est la formule, tu rentres la barre de formule et tu valides avec la coche verte et tu arrêtes l'enregistreur.
Normalement, dans un module tu retrouves le code vba de ta formule.

Après quand tu dis que tu veux en VBA, tu veux écrire en VBA le résultat de ta formule ou inscrire en VBA la formule dans une cellule?

A+
 
Re : formule en vba

Bonjour TITIBORREGAN5
Merci pour l'astuce
🙄 le resultat trouvé est :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A3:A2014").Select
    ActiveCell.FormulaR1C1 = _
        "=IF((COUNTBLANK(RC[1]:RC[3])+COUNTBLANK(RC[6]:RC[7])+COUNTBLANK(RC[10]:RC[11]))=0,ROW(RC)-2,"""" )"
End Sub



Ciao Ilino,

Après quand tu dis que tu veux en VBA, tu veux écrire en VBA le résultat de ta formule ou inscrire en VBA la formule dans une cellule?

A+

je veux inscrire la formule en VBA dans le tableau
GRAZIE
 
Re : formule en vba

Bonjour
mettre la formule dans une cellule (ici dans l'exemple [e2]
dans l'éditeur VBE et dans la fenêtre exécution écrire



?[e2].formula
=IF((COUNTBLANK(B3😀3)+COUNTBLANK(G3:H3)+COUNTBLANK(K3:L3))=0,ROW(A3)-2,"" )
?[e2].formulaR1C1
=IF((COUNTBLANK(R[1]C[-3]:R[1]C[-1])+COUNTBLANK(R[1]C[2]:R[1]C[3])+COUNTBLANK(R[1]C[6]:R[1]C[7]))=0,ROW(R[1]C[-4])-2,"" )
?[e2].formulalocal
=SI((NB.VIDE(B3😀3)+NB.VIDE(G3:H3)+NB.VIDE(K3:L3))=0;LIGNE(A3)-2;"" )

voilà
 
Re : formule en vba

Bonjour TITIBORREGAN5
Merci pour l'astuce
🙄 le resultat trouvé est :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A3:A2014").Select
    ActiveCell.FormulaR1C1 = _
        "=IF((COUNTBLANK(RC[1]:RC[3])+COUNTBLANK(RC[6]:RC[7])+COUNTBLANK(RC[10]:RC[11]))=0,ROW(RC)-2,"""" )"
End Sub





je veux inscrire la formule en VBA dans le tableau
GRAZIE

Du coup tu as juste à adapter ton code à ton fichier... avec une boucle non?


VB:
for i = 3 to 2014
cells(i,1).Formula = "=IF((COUNTBLANK(RC[1]:RC[3])+COUNTBLANK(RC[6]:RC[7])+COUNTBLANK(RC[10]:RC[11]))=0,ROW(RC)-2,"""" )"
next
 
Dernière édition:
Re : formule en vba

Re
ci joit le code
mais il ce bugue ????
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A3:A2014").Select
    for i = 3 to 2014
cells(i,1).Formula = "=IF((COUNTBLANK(RC[1]:RC[3])+COUNTBLANK(RC[6]:RC[7])+COUNTBLANK(RC[10]:RC[11]))=0,ROW(RC)-2,"""" )"
nextEnd Sub
 
Re : formule en vba

Buongiorno Ilino 🙂

voici la correction.



Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
    For i = 3 To 2014
Cells(i, 1).Formula = "=IF((COUNTBLANK(RC[1]:RC[3])+COUNTBLANK(RC[6]:RC[7])+COUNTBLANK(RC[10]:RC[11]))=0,ROW(RC)-2,"""" )"
Next
Application.EnableEvents = True
End Sub

Dans un événement CHANGE, il faut toujours commencer par : Application.EnableEvents = False et avant End Sub Application.EnableEvents = True. Pas besoin de Select vu que tu as la boucle d'insertion.



A+ 😎
 
Re : formule en vba

Bonjour Gilbert, re Ilino

Un autre exemple sans boucle (For Next)


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("l3").Value <> "" Then
Range("a3:a2014").Formula = "=IF((COUNTBLANK(RC[1]:RC[3])+COUNTBLANK(RC[6]:RC[7])+COUNTBLANK(RC[10]:RC[11]))=0,ROW(RC)-2,"""" )"
Else
Exit Sub
End If
End Sub



A+ 😎
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
23
Affichages
682
  • Question Question
Microsoft 365 Formule si ?
Réponses
7
Affichages
508
Réponses
7
Affichages
515
Retour