faire en masse une formule en if then else en VBA? (résolu)

  • Initiateur de la discussion Initiateur de la discussion clichy
  • 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 !

clichy

XLDnaute Junior
bonjour à tous,

je suis dans un fichier de reporting et je dois faire la fonction IF-THEN-ELSE 37 fois de suite.
y a t il une astuce pour alléger le code?

voici mon début de code qui fonctionne très bien, sachant que je change les valeurs Fxx et Hxx et la suite de cellule n'est pas linéaire.

Code:
Sub variable()
'
' COMMENTAIRE Macro
'
'environnement du mag
 'env 1
    If Range("F19").Value = "oui" Then
        Range("C112").End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.Offset.Value = Range("H19").Value
    Else
        Range("H112").End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.Offset.Value = Range("H19").Value
    End If
  'env 2
  If Range("F21").Value = "oui" Then
        Range("C112").End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.Offset.Value = Range("H21").Value
    Else
        Range("H112").End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.Offset.Value = Range("H21").Value
    End If
  'env 3
  If Range("F23").Value = "oui" Then
        Range("C112").End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.Offset.Value = Range("H23").Value
    Else
        Range("H112").End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.Offset.Value = Range("H23").Value
    End If
    
  'etc... encore 34 fois
    
    ActiveCell.Offset(1, 0).Select
       
   
    End Sub

je vous remercie d'avance
 
Dernière édition:
Re : faire en masse une formule en if then else en VBA?

Bonjour à tous,

Peux-tu essayer avec ceci :

VB:
Option Explicit

Sub Test()
    Dim X&
    For X = 19 To 89 Step 2
        If Range("F" & X).Value = "oui" Then
            Range("C112").End(xlDown).Offset(1, 0) = Range("H19").Value
        Else
            Range("H112").End(xlDown).Offset(1, 0) = Range("H19").Value
        End If
    Next X
End Sub

A+ à tous
 
Re : faire en masse une formule en if then else en VBA?

super

je te remercie, je vais essayer ca

cependant, mes cellules ne sont pas en odre linéaire ttes les 2 cellules.

y a til une autre soluce?

sinon je vais adapter mon fichier...

merci en tt cas
 
Re : faire en masse une formule en if then else en VBA?

ben je vais faire simple...

comme ca

Code:
Dim A&
    For A = 19 To 23 Step 2
        If Range("F" & A).Value = "oui" Then
            Range("C112").End(xlDown).Offset(1, 0) = Range("H" & A).Value
        Else
            Range("H112").End(xlDown).Offset(1, 0) = Range("H" & A).Value
        End If
    Next A

'extérieur du mag
Dim B&
    For y = 17 To 35 Step 2
        If Range("F" & B).Value = "oui" Then
            Range("C112").End(xlDown).Offset(1, 0) = Range("H" & B).Value
        Else
            Range("H112").End(xlDown).Offset(1, 0) = Range("H" & B).Value
        End If
    Next B

'entrée dans le mag
Dim C&
    For y = 39 To 47 Step 2
        If Range("F" & C).Value = "oui" Then
            Range("C112").End(xlDown).Offset(1, 0) = Range("H" & C).Value
        Else
            Range("H112").End(xlDown).Offset(1, 0) = Range("H" & C).Value
        End If
    Next C

merci encore
 
- 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
2
Affichages
399
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
588
Réponses
4
Affichages
754
Réponses
2
Affichages
771
Retour