Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1328 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème pour utiliser la fonction split

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème pour utiliser la fonction split

n°1830563
savius
Posté le 22-12-2008 à 20:05:28  profilanswer
 

Bonjour à tous,
Je ne m'y connait pas trop en VBA mais j'essaye de faire un macro tout simple pour rendre service à un ami
Dans une tableau de 106 lignes et pouvant avoir jusqu'à 10000 colonnes toutes les cellules sont sous la forme nom_de_l'argument=valeur et je voudrais retiré la partie avant le "=" ("=" compris )
Voila le programme que j'ai tapé:  
 

Code :
  1. Dim TabRes As Variant, i As Integer, j As Integer
  2.        
  3.        
  4.         i = 1
  5.         j = 2
  6.     Do While j <> 10000
  7.         Do While i <> 107
  8.         TabRes = Split(Cells(i, j), "=" )
  9.        
  10.         Cells(i, j) = TabRes(1)
  11.         i = i + 1
  12.         Loop
  13.     j = j + 1
  14.     Loop


 
Il marche pour la première colonne (enfin la deuxieme, la premiere contenant le titre de chaque ligne) et plante avec le message "l'indice n'appartient pas à la selection" sur la ligne 10 et ne touche pas aux autres colonnes.  
Comment peut on gérer les erreurs en VBA? Existe-t-il un équivalent au système try=>catch du cpp?
Merci d'avance, Joyeuse Fêtes.

mood
Publicité
Posté le 22-12-2008 à 20:05:28  profilanswer
 

n°1830610
satirik
Posté le 22-12-2008 à 22:22:08  profilanswer
 

gestion d'erreur : on error goto label
 
sinon pour faire ca proprement, un if Len(TabRes) = 0 then Exit do... length pe me souvient pas exactement et tu devrais déclarer ton TabRes comme tableau de chaine de char ...
 
 
dim TabRes() as string


Message édité par satirik le 22-12-2008 à 22:23:04
n°1830638
savius
Posté le 23-12-2008 à 00:40:12  profilanswer
 

Merci pour ta réponse,
j'ai remplacé la ligne 10 par:
       If Len(TabRes) = 0 Then Cells(i, j) = ""
        Else: Cells(i, j) = TabRes(1)
        End If
et il me repond "else sans if" j'avoue avoir du mal à comprendre comment fonctionne ce compilateur

n°1830663
pyrof
Posté le 23-12-2008 à 09:30:43  profilanswer
 

Bonjour,
 
la structure du if then else est la suivante
 
If ... Then
  action 1
else
  action2
end if
 
dans ton cas il faut ecrire :
 If Len(TabRes) = 0 Then
 Cells(i, j) = ""
        Else: Cells(i, j) = TabRes(1)
        End If

n°1830664
pyrof
Posté le 23-12-2008 à 09:36:16  profilanswer
 

Voila le vba réduit
 
 

for j=2 to 10000
  for i=1 to 107
    Cells(i, j) =Split(Cells(i, j), "=" )(1)
  next i
next j


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème pour utiliser la fonction split

 

Sujets relatifs
Impossible d'enlever une border + adapter bg en fonction de la résoProblème htaccess
Probléme argvproblème avec index.php de easyphp
Problème de sessions et de php.inipi.exe a cessé de fonctionner - quel est le problème ?
programmation de GnomeCallerID gtk et c (gros probleme !)problème avec "this" sur un formulaire
fonction srand()Problème avec VBA
Plus de sujets relatifs à : Problème pour utiliser la fonction split


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR