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

VBScript Discussion :

Supprimer les tabulations multiples


Sujet :

VBScript

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut Supprimer les tabulations multiples
    Bonjour,

    Problème simple :

    Entre 2 colonnes je vais, avoir des tabulations mais qui ne sont jamais le meme nombre.

    Par exemple je vais avoir :

    Colonne1 vbtab vbtab vbtab vbtab vbtab colonne2 --> 5 tab
    Colonne1 vbtab colonne2 --> 1 tab
    Colonne1 vbtab vbtab colonne2 --> 2 tab
    Comment faire pour supprimer toutes les tabulation et n'en garder qu'une ??


    pour que ca donne ca :

    Colonne1 vbtab colonne2 --> 1 tab
    Colonne1 vbtab colonne2 --> 1 tab
    Colonne1 vbtab colonne2 --> 1 tab


    Pour tester, si je fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Replace(result, vbtab, "-")
    ca m'affiche :

    Colonne1 - - - - - colonne2
    Colonne1 - colonne2
    Colonne1 - - colonne2
    J'ai bien essayé un truc comme ca mais ca ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim colonne
     
    Do While (Instr(1, colonne, vbTab & vbTab) > 0)
        colonne = Replace(colonne, vbTab, vbTab & vbTab, 1)
    Wend
    Avez vous une idée svp merci ??

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 187
    Points
    17 187
    Par défaut
    Salut
    J'ai pris tes exemples en partant de ta première citation Par exemple je vais avoir :, donc le résultat diffère légèrement de ta deuxième citation pour que ça donne ça :, mais il me semble que c'est plutôt ton copier/coller un peu trop rapide qui peut induire en erreur sur le résultat voulu
    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
    Function Cmpt(Letexte, LeChar)
    Cmpt = UBound(Split(Letexte, LeChar, -1, vbTextCompare))
    End Function
     
    Dim Phrase1, Phrase2, Phrase3
    Phrase1 = "Colonne1" & vbTab & vbTab & vbTab & vbTab & vbTab & "colonne2 --> 5 tab"
    Phrase2 = "Colonne1" & vbTab & "colonne2 --> 1 tab"
    Phrase3 = "Colonne1" & vbTab & vbTab & "colonne2 --> 2 tab"
     
    'Colonne1 vbtab colonne2 --> ( tab
    'Colonne1 vbtab colonne2 --> 1 tab
    'Colonne1 vbtab colonne2 --> 2 tab
     
    MsgBox Replace(Phrase1, vbTab, "", 1, Cmpt(Phrase1, vbTab) - 1, vbTextCompare)
    MsgBox Replace(Phrase2, vbTab, "", 1, Cmpt(Phrase2, vbTab) - 1, vbTextCompare)
    MsgBox Replace(Phrase3, vbTab, "", 1, Cmpt(Phrase3, vbTab) - 1, vbTextCompare)
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Points : 1 270
    Points
    1 270
    Par défaut
    Citation Envoyé par b.gaumard Voir le message
    J'ai bien essayé un truc comme ca mais ca ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim colonne
     
    Do While (Instr(1, colonne, vbTab & vbTab) > 0)
        colonne = Replace(colonne, vbTab, vbTab & vbTab, 1)
    Wend
    ca marche pas ?

    hum...
    A oui effectivement...
    Au lieu de diminuer les vbTab à 1, je t'en rajoutais un le tout dans une boucle infini...
    Ca m'apprendra à pas tester avant de proposer une solution.

    Là ca devrait aller mieux (ça a même été testé !!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim i, ligne()
     
    redim ligne(2)
    ligne(0) = "Colonne1" & vbtab & vbtab & vbtab & vbtab & vbtab & "colonne2" '5 tab
    ligne(1) = "Colonne1" & vbtab & "colonne2" '1 tab
    ligne(2) = "Colonne1" & vbtab & vbtab & "colonne2" '2 tab
     
    For i= LBound(ligne) to UBound(ligne)
    	Do While (Instr(1, ligne(i), vbTab & vbTab) > 0)
    		ligne(i) = Replace(ligne(i), vbTab & vbTab, vbTab, 1)
    	Loop
    	MsgBox "Ligne " & i & " = " & ligne(i)
    next
    Là c'est du tout confort.
    Tu n'as plus qu'à remplir le tableau ligne() comme tu le souhaites et il t'arrange tout comme il faut.

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    C'est parfait avec ca merci !!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i= LBound(ligne) to UBound(ligne)
    	Do While (Instr(1, ligne(i), vbTab & vbTab) > 0)
    		ligne(i) = Replace(ligne(i), vbTab & vbTab, vbTab, 1)
    	Loop
    	MsgBox "Ligne " & i & " = " & ligne(i)
    next

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

Discussions similaires

  1. Comment supprimer les doublons
    Par djelloulc dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/09/2013, 14h30
  2. [XSLT] Supprimer les tabulations en sortie
    Par jpp38300 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/06/2009, 11h46
  3. [RegEx] Supprimer les espaces, tabulations et retour à la ligne
    Par Sayrus dans le forum Langage
    Réponses: 5
    Dernier message: 07/03/2008, 12h21
  4. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  5. Réponses: 5
    Dernier message: 09/08/2007, 10h25

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