Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Erreur de syntaxe Basic - Type de donnees Worksheet inconnu - [OpenOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Candidat au Club
    Femme Profil pro
    Achats
    Inscrit en
    septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Achats

    Informations forums :
    Inscription : septembre 2019
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Erreur de syntaxe Basic - Type de donnees Worksheet inconnu -
    Bonjour

    Quand j'exécute la macro suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub RenameFile()
    '
    ' RenameFile Macro
     
    '
        Dim iMaxCnt, iColCnt, iRowCnt  As Integer
        Dim NewName, NewCount
        Dim  stRow, OldName, FileNewNam as Variant
        Dim ws As Worksheet
    '
    j'obtiens le message "erreur de syntaxe…."
    si je supprime la tabulation qui se trouve avant Dim ws As Worksheet, ça marche. Pouvez-vous me dire ce qui ne va pas.

    Merci

  2. #2
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    mars 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2010
    Messages : 159
    Points : 91
    Points
    91
    Par défaut Code un peu court
    Bonsoir,

    C' est un peu court. Il faudrait le code pour voir ou se situe le problème.

    Cordialement

  3. #3
    Membre émérite Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    mars 2007
    Messages
    1 248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : mars 2007
    Messages : 1 248
    Points : 2 683
    Points
    2 683
    Par défaut
    Bonjour,

    Un peu court mais avec plusieurs anomalies.

    Worksheet est un objet VBA, il n'est utilisable avec OoBasic que si le module commence par :
    Option VBASupport 1 .

    Mais je pense qu'il est préférable de s'en tenir aux objets OoBasic, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim ws as Object
      ws =  = ThisComponent.Sheets.getByName("Feuille1")
    Et dans la ligne :
    Dim iMaxCnt, iColCnt, iRowCnt As Integer .
    seul iRowCnt est Integer,
    En absence de typage, iMaxCnt et iColCnt sont des Variant
    Cordialement,
    Patrice
    Personne ne peut détenir le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  4. #4
    Candidat au Club
    Femme Profil pro
    Achats
    Inscrit en
    septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Achats

    Informations forums :
    Inscription : septembre 2019
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour
    Désolée de vous répondre aussi tard, mais j'ai eu des problèmes de sante.
    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Sub RenameFile
    '
    ' RenameFile Macro
    ' Macro recorded 8/17/2007 by mseymat100480
    '
    '	Option VBASupport 1
    	Dim iMaxCnt As Integer
    	Dim iColCnt As Integer 
    	Dim iRowCnt  As Integer
        Dim NewName As String
        Dim NewCount  As Integer
        Dim stRow As Variant 
        Dim OldName As Variant
        Dim FileNewName As Variant
    	Dim ws As Worksheet
    '  
    '
    ' Macro recorded by mcs
    '
    	Set ws = Sheets("Parameters")
        PathFile = ws.Range("B1").Value
        NewName = ws.Range("B2").Value
     
     
        Set ws = Sheets("Sheet1")
     
     
    ' Find how many rows are existing in the sheet.
    '
        iRowCnt = 1
     
    '    PathFile = "C:\Documents and Settings\mseymat100480\My Documents\photos_200708\jj\"
     
    	iRowCnt =  Range("A65536").End(xlUp).Row    
     
    	iRowCnt =  iRowCnt - 1
        For i = 1 To iRowCnt
            strRow = "A" + Trim(Str(i))
            OldName = ""
            OldName = PathFile & ws.Range(strRow).Value
            FileNewName = PathFile & NewName & Trim(Str(i))& ".jpg"
            Name OldName As FileNewName
        Next i
    	MsgBox ("OK")
     
     
     
    End Sub
    En fait mon gros problème c'est que ça marche si la première fois que je rentre de la macro, je change la tabulation de la 1ere ligne après les Dim.…

    merci de votre aide

  5. #5
    Membre émérite Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    mars 2007
    Messages
    1 248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : mars 2007
    Messages : 1 248
    Points : 2 683
    Points
    2 683
    Par défaut
    Bonjour

    Utilises ce code OoBasic, au lieu de VBA dont la compatibilité est incertaine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Option Explicit
    Sub RenameFile
    '
     Dim wsh As Object           'feuille
     Dim rng As Object           'plage de cellules
     Dim tZT As Variant          'tableau des zones textes
     Dim pth As String           'chemin
     Dim msg As String           'message    
     Dim oldName As String       'ancien nom 
     Dim newName As String       'nouveau nom
     Dim oldFile As String       'ancien fichier       
     Dim newFile As String       'nouveau fichier
     Dim pLZ as Long             'première ligne zone
     Dim dLZ as Long             'dernière ligne zone
     Dim ix1 as Long             'index1
     Dim ix2 as Long             'index2
     Dim ix3 as Long             'index3
     
        ' Chemin et nouveau nom
        wsh =  ThisComponent.Sheets.getByName("Parameters")
        pth = wsh.getCellRangeByName("B1").String
        newName = wsh.getCellRangeByName("B2").String
        ' Analyser chaque cellule contenant du texte dans la colonne A 
        wsh =  ThisComponent.Sheets.getByName("Sheet1")
        rng = wsh.getCellRangeByName("A:A")
        tZT = rng.QueryContentCells(com.sun.star.sheet.CellFlags.STRING).RangeAddresses
        For ix1 = 0 to uBound(tZT)
            pLZ = tZT(ix1).StartRow
            dLZ = tZT(ix1).EndRow
            For ix2 = pLZ to dLZ
                oldName = wsh.getCellByPosition(0, ix2).String
                oldFile = pth & oldName
                If dir(oldFile) = oldName then  
                    ix3 = ix3 +1
                    newFile = pth & newName & ix3 & ".jpg"
                    name oldFile As newFile  
                Else
                    msg = msg & chr(10) & "- " & oldName
                End If   
            Next ix2
        Next ix1
        If msg = "" Then 
            MsgBox "OK"
        Else
            MsgBox "Fichiers non trouvés : " & msg
        End If
     
    End Sub
    Cordialement,
    Patrice
    Personne ne peut détenir le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  6. #6
    Candidat au Club
    Femme Profil pro
    Achats
    Inscrit en
    septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Achats

    Informations forums :
    Inscription : septembre 2019
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Merci de votre reponse.
    Bonjour

    Merci de votre reponse. Ca marche impeccable.

    Mcs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Spécificateur de type manquant + erreur de syntaxe
    Par JackJnr dans le forum Débuter
    Réponses: 4
    Dernier message: 10/10/2013, 11h27
  2. Réponses: 4
    Dernier message: 13/02/2012, 12h48
  3. Réponses: 18
    Dernier message: 16/07/2008, 02h18
  4. PL/SQL TYPE DE DONNEES HEURE
    Par mimi_été dans le forum PL/SQL
    Réponses: 3
    Dernier message: 18/10/2004, 17h33
  5. type de donnees table + fonctions
    Par davix dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2004, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo