Erreur SubString

Résolu
joebarteam88 Messages postés 7 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 1 octobre 2007 - 23 août 2006 à 16:26
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 24 août 2006 à 08:36
Bonjour,
comme l'indique le titre je suis full débutant en VB. Je suis en train d'essayer de faire une macro dans excel et grrrrr !!! Je galère à mort ...
Voici mont code
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

Sub GenXML(site)

Dim curSheet
Dim curBook

Set curBook = Workbooks.Item("Properties.xls")
Set curSheet = curBook.Sheets("properties")

Dim fs, f, s, filename
Set fs = CreateObject("Scripting.FileSystemObject")
filename = home & "\properties.xml"
Set ts = fs.CreateTextFile(filename, True)

counter = 1
Dim str
ts.WriteLine ("<?xml version=""1.0"" encoding=""ISO-8859-1"" ?>")
ts.WriteLine ("")
Do While counter < 1000
counter = counter + 1
str = curSheet.Cells(counter, 1).Value
If (str = "#FIN") Then
counter = 1001
ElseIf (str.Substring(0, 1) <> "#") Then
ts.Write (Chr(9) & "")
ts.Write (curSheet.Cells(counter, colsite).Value)
ts.WriteLine ("

")
End If
Loop
ts.WriteLine ("

")

ts.Close
End Sub

<!-- END TEMPLATE: bbcode_code -->
Lors de l'execution, il plante sur la ligne en gras en me disant objet requis. Avec le debug (que je découvre aussi bien sur) j'ai vu que str est bien valorisé, ça me laisse penser qu'il se plante (enfin que je me plante donc) sur le SubString.
Une idée de quoi ça pourrait venir svp ?
merci

7 réponses

joebarteam88 Messages postés 7 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 1 octobre 2007
23 août 2006 à 16:29
Désolé pour le code, le voici correctement indenté


Sub GenXML(site)
   
    Dim curSheet
    Dim curBook
   
    Set curBook = Workbooks.Item("Properties.xls")
    Set curSheet = curBook.Sheets("properties")


    Dim fs, f, s, filename
    Set fs = CreateObject("Scripting.FileSystemObject")
    filename = home & "\properties.xml"
    Set ts = fs.CreateTextFile(filename, True)
       
    counter = 1
    Dim str
    ts.WriteLine ("<?xml version=""1.0"" encoding=""ISO-8859-1"" ?>")
    ts.WriteLine ("")
    Do While counter < 1000
        counter = counter + 1
        str = curSheet.Cells(counter, 1).Value
        If (str = "#FIN") Then
            counter = 1001
        ElseIf (str.Substring(0, 1) <> "#") Then
            ts.Write (Chr(9) & "")
            ts.Write (curSheet.Cells(counter, colsite).Value)
            ts.WriteLine ("

")
        End If
    Loop
    ts.WriteLine ("

")


    ts.Close
End Sub
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 août 2006 à 16:36
Salut,
Je ne sais pas a l'aide de quoi tu code,
Mais si tu es bien en VB6 ou en VBA la procédure SubString N'existe pas.

NOTE: Site ne sert a rien comme parametre vu qu il n'ets pas utiliser dan sla Sub
NOTE2 Pense a bien déclarer le type de tes varaibles cela poura parfois t'éviter des problèmes.
ex:
Dim curSheet  As Worksheet
Dim curBook As Workbook

En VBA Et VB6 si tu veux isoler les caracteres d'une chiane de caracteres il faut utiliser la fonction Mid
Mid(String, Start As Long, [Lenght])

@+, Julien
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 août 2006 à 16:39
substring en VBA, je suis pas sur que ça existe.

De plus, tu ne type pas tes variables à la déclaration. Dans ce cas, elles sont de type variant et prennent en fait le type de la première valeur que tu leur met dedant.
Ca peut te generer des erreurs sans que tu t'en appercoive.

Typage des variables :
Dim curSheet As Worksheet
Dim curBook As Workbook
.......
Dim str as String
........

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 août 2006 à 16:39
Grilled

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 août 2006 à 16:45
>casy: Un tit peu ui

@+, Julien
0
joebarteam88 Messages postés 7 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 1 octobre 2007
24 août 2006 à 08:15
Super, tout fonctionne parfaitement avec Mid.
J'avais juste commis une chtite erreur en faisant commençer l'extraction à 0 avec Mid (comme je le fais en java avec substring).
En tout cas merci bien.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
24 août 2006 à 08:36
Mais de rien


N oublie pas d'appuye sur réponse acceptée sur le ou les posts qui ont pu t'aider.
@+, Julien
0
Rejoignez-nous