IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

VBA Word Discussion :

Commande Split qui me renvoie un message d'erreur


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Commande Split qui me renvoie un message d'erreur
    Bonjour,
    Je voudrais faire un bout de code pour supprimer un point "." à la fin d'une phrase ou les "s" à la fin de tous les mots au pluriel.
    Je pensais utiliser la commande Split. Mais elle me renvoie un message d'erreur.(voir en pj message d'erreur).

    Voici le bout de code (juste pour supprimer les "."), le 1er Split fonctionne... mais pas le second (celui avec le If) !


    Quelqu'un peux-t-il m'aider (je suis novice en VBA et sous W2010) ?



    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
    Sub Supprimerlespoints()
     
    'nécéssite d'activer la référence "Microsoft Forms 2.0 Object Library."
     
    Dim Maphrase As String, t() As String, i As Long, Derlettre As String
     
    Maphrase = "on a marché sur la lune."
     
    t = Split(Maphrase, " ")
     
    For i = 0 To UBound(t())
            Derlettre = Right(t((i)), 1)
     
                If Derlettre = "." Then
                t(i) = Split(t(i), ".")
                End If
     
            Debug.Print t(i)
    Next i
     
    End Sub
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Dans ton If que tu as un problème.

    essaie avec un Left() au lieu d'un split sur "."

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Je ne comprend pas ...
    Tout d'abord, merci pour la réponse.

    Mias je ne comprend pas ...

    Si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = 0 To UBound(t())
            Derlettre = Right(t((i)), 1)
                If Derlettre = "." Then
                t(i) = Left(t(i), 4)
                End If
                Debug.Print t(i)
    Next i
    Dans ce cas la ça marche (car avec lune. ça me sort lune) Mais en réalité j'ai plein de mot différents, de taille différente ...

    Donc ça le fait pas ....

    A moins que je n'ai pas compris le conseil ...?

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Si tu as des mots différents, on peut récupérer leur longueur avant.

    Je n'ai pas trouvé ce que renvoie ton split, mais c'est cette valeur qui pose problème.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bon cette méthode me permet effectivement de contourner le problème.

    Même si je ne comprend tjrs pas pourquoi le Split ne marche pas et me renvoie l'erreur "incompatibilité de type "

    Merci

Discussions similaires

  1. Commande system : cp s'exécute mais renvoie un message d'erreur
    Par Takka dans le forum Programmation et administration système
    Réponses: 14
    Dernier message: 21/05/2014, 20h12
  2. Réponses: 0
    Dernier message: 13/12/2013, 12h10
  3. [CR XI] Affiché 0 sur une commande qui ne renvoi pas de ligne
    Par Rits dans le forum Débuter
    Réponses: 1
    Dernier message: 01/03/2010, 15h49
  4. [PowerShell] Lire une seule info d'une commande qui en renvoie plusieurs
    Par berrichon dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 04/01/2009, 21h11

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