(résolu) vba excel : probleme de typage string

vba excel : probleme de typage string (résolu) - VB/VBA/VBS - Programmation

Marsh Posté le 03-01-2006 à 10:15:52    

bonjour,  
je souhaite que mon code affiche B1 dans la cellule (L, 6) et B2 en (L, 7) si la cellule (L, 5) contient la valeur B  
rien ne s'affiche à l'exec  
je pense que c'est du à une erreur de typage mais je n'arrive pas à la résoudre  
merci  
 
Julien  
 
 
Dim ligne As Long  
For ligne = ActiveSheet.UsedRange.Rows.Count To 1 Step -1  
 
Select Case ligne  
 
Case ActiveSheet.Cells(ligne, 5).Value = "A"  
ActiveSheet.Cells(ligne, 6).Value = "A1"  
 
Case ActiveSheet.Cells(ligne, 5).Value = "B"  
ActiveSheet.Cells(ligne, 6).Value = "B1"  
ActiveSheet.Cells(ligne, 7).Value = "B2"  
 
....  
 
End Select  
 
Next


Message édité par meuble2maison le 03-01-2006 à 23:20:12
Reply

Marsh Posté le 03-01-2006 à 10:15:52   

Reply

Marsh Posté le 03-01-2006 à 12:04:42    

Salut meuble2maison
 
Selct case fonctionne comme ceci
 
 
Select Case Tavariable
     Case is "A" ' Ta valeur
               Ton traitement
     Case  1 To 10 'une plage de valeur
               Ton autre traitement
     Case Else
                Dans les autres cas
end select
 
Mais dans ton cas un traitement plus simple consisterai à faire ceci :

Code :
  1. Dim ligne As Long
  2. For ligne = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
  3.      cells(ligne,6).value = cells(ligne,5).value & "1"
  4.      cells(ligne,7).value = cells(ligne,5).value & "2"
  5. next ligne


@+ Watashi
 
Edit : pour les syntaxes l'aide vans VBA est très bien faite....


Message édité par watashi le 03-01-2006 à 12:05:34

---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 03-01-2006 à 12:45:51    

salut watashi,
 
le code que tu donnes ne peut fonctionner car le but du programme n'est pas d'afficher B1 lorsqu'il y a B (j'ai écrit A & B de manière a éviter sont chaine de char trop longue)
 
mon code ressemble en fait à :
 
 
Dim ligne As Long
    For ligne = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
                 
    Select Case ligne
     
    Case ActiveSheet.Cells(ligne, 5).Value = "NON FRENCH W/O FED STAMP"
        ActiveSheet.Cells(ligne, 6).Value = "SWX TAX"
        ActiveSheet.Cells(ligne, 7).Value = "REPORTING FEE"
        ActiveSheet.Cells(ligne, 8).Value = "VIRTX FEES"
     
    Case ActiveSheet.Cells(ligne, 5).Value = "UK CHARITY W/O FED"
        ActiveSheet.Cells(ligne, 6).Value = "SWX TAX"
        ActiveSheet.Cells(ligne, 7).Value = "REPORTING FEE"
        ActiveSheet.Cells(ligne, 8).Value = "VIRTX FEES"
        ActiveSheet.Cells(ligne, 9).Value = "STAMP DUTY"
        ActiveSheet.Cells(ligne, 10).Value = "STAMP DUTY (IRELAND)"
...  
 
End Select
 
le but du prog :
les profils de taxe qui ne sont pas clair (ex : UK CHARITY W/O FED)
du coup, on preffere rajouter à coté les intitulés de chaqu'unes des taxes associées au profil

Reply

Marsh Posté le 03-01-2006 à 13:37:11    

Voilà qui change un peu le problème.. Tu ne peux effectivement pas utiliser le remplissage automatique
 
Pour ton select case la bonne synthaxe est celle-ci

Code :
  1. Sub RemplirSelonCase()
  2. Dim ligne As Long
  3. Dim Valeur
  4.     For ligne = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
  5. 'au choix
  6.          Valeur = ActiveSheet.Cells(ligne, 5).Value
  7.     Select Case Valeur
  8. 'ou
  9. '    Select Case ActiveSheet.Cells(ligne, 5).Value
  10.         Case Is = "NON FRENCH W/O FED STAMP"
  11.             ActiveSheet.Cells(ligne, 6).Value = "SWX TAX"
  12.             ActiveSheet.Cells(ligne, 7).Value = "REPORTING FEE"
  13.             ActiveSheet.Cells(ligne, 8).Value = "VIRTX FEES"
  14.        
  15.         Case Is = "UK CHARITY W/O FED"
  16.             ActiveSheet.Cells(ligne, 6).Value = "SWX TAX"
  17.             ActiveSheet.Cells(ligne, 7).Value = "REPORTING FEE"
  18.             ActiveSheet.Cells(ligne, 8).Value = "VIRTX FEES"
  19.             ActiveSheet.Cells(ligne, 9).Value = "STAMP DUTY"
  20.             ActiveSheet.Cells(ligne, 10).Value = "STAMP DUTY (IRELAND)"
  21.     End Select
  22.     Next ligne
  23. End Sub


Ton choix ne dépend pas de ligne mais de le valeur de la cellule
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 03-01-2006 à 16:40:49    

merci,
ca marche

Reply

Marsh Posté le 03-01-2006 à 19:24:22    

cool :)
Edites juste le titre de ton premier post avec un petit résolu, ça pourra en aider d'autres  :)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Sujets relatifs:

Leave a Replay

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