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

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:

JCGL

XLDnaute Barbatruc
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
 

clichy

XLDnaute Junior
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
 

clichy

XLDnaute Junior
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
 

Statistiques des forums

Discussions
312 345
Messages
2 087 482
Membres
103 556
dernier inscrit
titboine