VBA - Condition If imbriquée dans If

Bonjour à tous,

Je reviens à nouveau pour un problème pour la création d'une macro.

Pour l'exposer cela correspondrait à cela :

J'ai une macro qui agit selon une condition if par rapport à une fonction.

En français cela serait :

" Si la cellule F3 est 11 alors tu fais ça :

  • si C8 = "TotalGen" alors C13 = "(tous)" sinon C13 = C8
  • ensuite si C10 = "TotalGen" alors C14 = "(tous)" sinon C14 = C10
  • ensuite si F10 = "TotalGen" alors F14 = "(tous)" sinon F14 = F10

Mais si la cellule F3 est 12 alors tu fais ça : (et rebelote pour des nouvelles contraintes) "

Donc sous VBA je n'arrive pas à le traduire mais j'ai un squelette (non fonctionnel) comme ça :

sub comparaison()

If range("F3") = "11" then

if Range("C8").Value = "Total Général" Then Range("C13").Value = "(tous)" 
else: Range("C13").Value = Range("C8").Value
end if
if Range("C10").Value = "Total Général" then Range("C14").Value = "(tous)"
else: Range("C14").Value = Range("C10").Value 
end if
if Range("F10").Value = "Total Général" then Range("F14").Value = "(tous)"
else: Range("F14").Value = Range("F10").Value 
end if

Elseif range ("F3") = "12" then

'....etc sur le même esprit qu'au dessus...

else: 'mon code si tout est négatif
end if
end sub

j'espère que vous comprenez ce que j'essaie de faire , peut-être mon approche n'est pas la bonne, donc en espérant vous lire!

Hyrule,

bonjour,

si tu mets une instruction sur la même ligne que le then, tu dois y mettre le else aussi et pas de end if

essaie ainsi

sub comparaison()

If range("F3") = "11" then

if Range("C8").Value = "Total Général" Then 
   Range("C13").Value = "(tous)" 
else
  Range("C13").Value = Range("C8").Value
end if

if Range("C10").Value = "Total Général" then 
  Range("C14").Value = "(tous)"
else
  Range("C14").Value = Range("C10").Value 
end if

if Range("F10").Value = "Total Général" then 
 Range("F14").Value = "(tous)"
else
 Range("F14").Value = Range("F10").Value 
end if

Elseif range ("F3") = "12" then

'....etc sur le même esprit qu'au dessus...

else
 'mon code si tout est négatif
end if
end sub

ou ainsi,

sub comparaison()

If range("F3") = "11" then

   if Range("C8").Value = "Total Général" Then   Range("C13").Value = "(tous)" else  Range("C13").Value = Range("C8").Value

   if Range("C10").Value = "Total Général" then   Range("C14").Value = "(tous)" else  Range("C14").Value = Range("C10").Value 

   if Range("F10").Value = "Total Général" then  Range("F14").Value = "(tous)" else Range("F14").Value = Range("F10").Value 

Elseif range ("F3") = "12" then

'....etc sur le même esprit qu'au dessus...

else
 'mon code si tout est négatif
end if
end sub

Je vais essayer ça et je reviens vers vous,

je ne savais pas qu'il y avait une différence si le code était sur la même ligne ou non !

Edit :

" Fantastique ! "

Rechercher des sujets similaires à "vba condition imbriquee"