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

Macros et VBA Excel Discussion :

Comment utiliser "split" avec textbox [XL-2007]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Comment utiliser "split" avec textbox
    Bonsoir,

    Je voudrais parvenir à faire à peu près la même chose pour traiter des données séparées par des tirets mais en utilisant des textboxs.

    En effet, le code ci-dessous traite des données sur des feuilles. Soit en feuille "Source" les données à traiter, en colonne A des intitulées et en colonne B des données séparées par des tirets (-). Après exécution de la macro "SeparationEnLignes", en feuille "Cible" l'intitulé est repris en colonne A autant de fois qu’il y de valeurs séparées par des tirets et en colonne B les valeurs séparées sur chaque ligne de l'intitulé.

    ex:sur la feuille Source en A1: Voiture et en B1: Peugeot-Renault-BMW
    résultat sur la feuille Cible en A1:Voiture---->en B1: Peugeot, en A2:Voiture---->en B2: Renault, en A3:Voiture---->en B3:BMW, c'est ce que j'obtiens avec ce 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
    Option Explicit
     
    Sub SeparationEnLignes()
        Dim feuilleSource As Worksheet
        Dim feuilleCible As Worksheet
        Dim iSource, iCible, i As Integer
        Dim currentA, currentB As String
        Dim currentSplit() As String
     
        Set feuilleSource = Worksheets("Source") 'A modifier, la feuille contenant les données originales
        Set feuilleCible = Worksheets("Cible") 'A modifier, la feuille où l'on veut le résultat
     
        'Initialisation des compteurs de lignes
        iSource = 1
        iCible = 1
     
        Do While feuilleSource.Cells(iSource, "A").Value <> "" 'Tant qu'il y a qq chose en colonne A
            currentA = feuilleSource.Cells(iSource, "A").Value
            currentB = feuilleSource.Cells(iSource, "B").Value
     
            'On décompose la chaine par les virgules
            currentSplit = Split(currentB, "-")
     
            'Pour chaque élément, on l'écrit dans la feuille cible
            For i = 0 To UBound(currentSplit)
                feuilleCible.Cells(iCible, "A").Value = currentA
                feuilleCible.Cells(iCible, "B").Value = LTrim(currentSplit(i)) 'En enlevant les espaces à gauche
                iCible = iCible + 1
            Next i
     
            iSource = iSource + 1
        Loop
    End Sub
    Je voudrais donc obtenir la même chose avec un userform, les données de la feuille Cible seront remplacées par TextBox1(colonne A=intitulé) et TetxBox2(colonne B=valeurs séparées par des tirets).

    En vous remerciant par avance.
    Dernière modification par cathodique ; 23/01/2015 à 00h28.

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

Discussions similaires

  1. comment utiliser de l'OpenGL avec du Java ?
    Par DjiZ dans le forum OpenGL
    Réponses: 3
    Dernier message: 14/01/2004, 15h21
  2. Comment utiliser les styles XP avec Dev-C++?
    Par abraxas dans le forum Dev-C++
    Réponses: 3
    Dernier message: 05/10/2003, 19h47

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