kestion tres courte : if imbriqués

kestion tres courte : if imbriqués - VB/VBA/VBS - Programmation

Marsh Posté le 22-06-2004 à 11:35:39    

salut tlm!
 
Je voulais simplement savoir si il etait possible de faire plusieurs IF imbriqués dans une macro excel...
 
Passke chez moi, cela ne semble pas trop trop fonctionner!
 
Merci
 

Reply

Marsh Posté le 22-06-2004 à 11:35:39   

Reply

Marsh Posté le 22-06-2004 à 12:18:34    

tu peux en imbriquer 7 au maximum dans excel

Reply

Marsh Posté le 22-06-2004 à 13:30:31    

l'imbrication doit se faire ainsi :

Code :
  1. =SI(A1=1;"A";SI(A1=2;"B";SI(A1=3;"C";"Autre valeur" )))


 
ou en visual basic :

Code :
  1. ActiveCell.FormulaR1C1 = _
  2.         "=IF(RC[-1]=1,""A"",IF(RC[-1]=2,""B"",IF(RC[-1]=3,""C"",""Autre valeur"" )))"

Reply

Marsh Posté le 22-06-2004 à 17:48:36    

Ex :
 

Code :
  1. MaVar = inputbox("blabla..." )
  2. If Mavar = "Toto" then
  3. msgbox "blablaToto"
  4. ElseIf Mavar = "Tata" then
  5. msgbox "blablatata"
  6. ElseIf Mavar = "Tutu" then
  7. msgbox "blablatutu"
  8. (...)
  9. Else
  10. msgbox "C pas un membre de la famille a toto"
  11. endif


 
ou mieux que les If imbriqué : Case
 

Code :
  1. MaVar = inputbox("blabla..." )
  2. Select Case MaVar
  3.     Case Toto
  4.     msgbox "blablaToto"
  5.     Case Tata
  6.     msgbox "blablatata"
  7.     Case Tutu
  8.     msgbox "blablatutu"
  9.     (...)
  10.     Case else
  11.     msgbox "C pas un membre de la famille a toto"
  12. End select


 
bon j'espère que ça t'aidera

Reply

Marsh Posté le 23-06-2004 à 12:21:31    

salut, merci de vos reponse !
dsl je vais faire le bourrin un peu, mais je comprends pas:
 

Code :
  1. Sub Invoice()
  2. Dim i As Integer
  3. Dim k As Integer
  4. Dim rngCurrentCell As Range
  5. Dim rngNextCell As Range
  6. i = 1
  7. k = 2
  8.     Set rngCurrentCell = Worksheets("vik_1086797835" ).Range("A2" )
  9.    
  10.    
  11.     Do
  12.    
  13.     i = i + 1
  14.    
  15.    
  16.         Set rngNextCell = rngCurrentCell.Offset(1, 0)
  17.         If rngNextCell.Value = rngCurrentCell.Value Then
  18.         MsgBox k
  19.                 If Worksheets("vik_1086797835" ).Range("H" & i).Value = "1" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  20.        
  21.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  22.        
  23.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("F" & k)
  24.                
  25.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "2" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  26.        
  27.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  28.        
  29.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("G" & k)
  30.                
  31.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "3" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  32.        
  33.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  34.        
  35.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("H" & k)
  36.                
  37.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "4" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  38.        
  39.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  40.        
  41.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("I" & k)
  42.                
  43.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "5" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  44.        
  45.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  46.        
  47.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("J" & k)
  48.                
  49.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "6" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  50.        
  51.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  52.        
  53.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("K" & k)
  54.                
  55.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "7" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  56.        
  57.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  58.        
  59.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("L" & k)
  60.                
  61.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "8" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  62.        
  63.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  64.        
  65.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("M" & k)
  66.                
  67.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "9" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  68.        
  69.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  70.        
  71.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("N" & k)
  72.                
  73.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "10" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  74.        
  75.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  76.        
  77.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("O" & k)
  78.                
  79.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "11" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  80.        
  81.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  82.        
  83.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("P" & k)
  84.                
  85.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "12" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  86.        
  87.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  88.                        
  89.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("Q" & k)
  90.                
  91.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "1" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  92.        
  93.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  94.        
  95.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("R" & k)
  96.                
  97.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "2" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  98.        
  99.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  100.        
  101.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("S" & k)
  102.                
  103.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "3" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  104.        
  105.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  106.        
  107.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("T" & k)
  108.                
  109.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "4" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  110.        
  111.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  112.        
  113.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("U" & k)
  114.                
  115.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "5" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  116.        
  117.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  118.        
  119.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("V" & k)
  120.                
  121.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "6" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  122.        
  123.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  124.        
  125.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("W" & k)
  126.                
  127.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "7" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  128.        
  129.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  130.        
  131.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("X" & k)
  132.                
  133.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "8" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  134.        
  135.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  136.        
  137.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("Y" & k)
  138.                
  139.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "9" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  140.        
  141.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  142.        
  143.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("Z" & k)
  144.                
  145.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "10" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  146.        
  147.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  148.        
  149.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("AA" & k)
  150.                
  151.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "11" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  152.        
  153.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  154.        
  155.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("AB" & k)
  156.                
  157.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "12" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  158.        
  159.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  160.        
  161.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("AC" & k)
  162.        
  163.                 Set rngCurrentCell = rngNextCell
  164.                 End If
  165.                
  166.                
  167.    
  168.    
  169.     ElseIf rngNextCell.Value <> rngCurrentCell.Value Then
  170.     k = k + 1
  171.     MsgBox k
  172.    
  173.    
  174.                 If Worksheets("vik_1086797835" ).Range("H" & i).Value = "1" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  175.        
  176.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  177.        
  178.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("F" & k)
  179.                
  180.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "2" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  181.        
  182.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  183.        
  184.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("G" & k)
  185.                
  186.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "3" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  187.        
  188.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  189.        
  190.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("H" & k)
  191.                
  192.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "4" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  193.        
  194.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  195.        
  196.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("I" & k)
  197.                
  198.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "5" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  199.        
  200.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  201.        
  202.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("J" & k)
  203.                
  204.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "6" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  205.        
  206.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  207.        
  208.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("K" & k)
  209.                
  210.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "7" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  211.        
  212.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  213.        
  214.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("L" & k)
  215.                
  216.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "8" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  217.        
  218.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  219.        
  220.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("M" & k)
  221.                
  222.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "9" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  223.        
  224.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  225.        
  226.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("N" & k)
  227.                
  228.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "10" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  229.        
  230.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  231.        
  232.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("O" & k)
  233.                
  234.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "11" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  235.        
  236.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  237.        
  238.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("P" & k)
  239.                
  240.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "12" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2003" Then
  241.        
  242.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  243.        
  244.                
  245.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("Q" & k)
  246.                
  247.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "1" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  248.        
  249.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  250.        
  251.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("R" & k)
  252.                
  253.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "2" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  254.        
  255.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  256.        
  257.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("S" & k)
  258.                
  259.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "3" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  260.        
  261.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  262.        
  263.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("T" & k)
  264.                
  265.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "4" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  266.        
  267.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  268.        
  269.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("U" & k)
  270.                
  271.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "5" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  272.        
  273.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  274.        
  275.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("V" & k)
  276.                
  277.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "6" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  278.        
  279.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  280.        
  281.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("W" & k)
  282.                
  283.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "7" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  284.        
  285.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  286.        
  287.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("X" & k)
  288.                
  289.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "8" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  290.        
  291.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  292.        
  293.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("Y" & k)
  294.                
  295.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "9" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  296.        
  297.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  298.        
  299.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("Z" & k)
  300.                
  301.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "10" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  302.        
  303.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  304.        
  305.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("AA" & k)
  306.                
  307.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "11" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  308.        
  309.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  310.        
  311.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("AB" & k)
  312.                
  313.                 ElseIf Worksheets("vik_1086797835" ).Range("H" & i).Value = "12" And Worksheets("vik_1086797835" ).Range("J" & i).Value = "2004" Then
  314.        
  315.                 Worksheets("vik_1086797835" ).Range("K" & i).Copy
  316.        
  317.                 ActiveSheet.Paste Destination:=Worksheets("Final" ).Range("AC" & k)
  318.        
  319.                 Set rngCurrentCell = rngNextCell
  320.                 End If
  321.                
  322.                
  323.     End If
  324.     Loop Until i = 20
  325.    
  326. End Sub


 
 
 
g l'impression qu'il n'arrive pas a rentrer dans la 2e grosses partie, ce qui fait ke mon k ne s'increment pas...
C peut etre un pb d'ecriture...
mais je comprends plus la...

Reply

Marsh Posté le 23-06-2004 à 15:58:57    

bon le pb d'avant est reglé...
Cependant, g une nvelle question (je vais peut etre finir par vous saouler)
 
Comment fait-on pour ajouter une ligne (row)?

Code :
  1. Set rngCurrentCell = Worksheets("Final" ).Range("B4" )
  2.     Do While Not IsEmpty(rngCurrentCell)
  3.         Set rngNextCell = rngCurrentCell.Offset(1, 0)
  4.         If rngNextCell.Value = rngCurrentCell.Value Then
  5.             rngCurrentCell.addRow
  6.         End If
  7.         Set rngCurrentCell = rngNextCell
  8.     Loop


 
Mais le addRow ne marche pas et je trouve pas d'equivalent...

Reply

Marsh Posté le 23-06-2004 à 16:23:46    

Méthode Insert de l'objet "Row":
Worksheets("Feuil1" ).Rows(4).Insert
insère une ligne sous la ligne 4
(tiré brut de la doc. Excel 97).  


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed