Scinder une cellule Excel

anas_8320 Messages postés 3 Statut Membre -  
anas_8320 Messages postés 3 Statut Membre -
Bonjour,

Je souhaiterais scinder une cellule en deux colonnes à savoir que dans la première cellule la macro va garder le premier mot et dans la deuxième cellule la macro devra copier le reste, exemple :

[Asus Chromebook Flip C213 Touch] --> [Asus] [Chromebook Flip C213 Touch]
[DELL Latitude E6430] --> [DELL] [Latitude E6430]

Est ce que quelqu'un a une idée SVP d'une macro à mettre en place ?

Merci beaucoup !

3 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re,

    En ce cas modifie la macro ainsi :
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ligne = Columns(Target.Column).Find("*", , , , xlByColumns, xlPrevious).Row 'dernière ligen non vide
    y = Target.Column ' colonne de la cellile
    For x = Target.Row To ligne 'boucle sur les lignes depuis le double-clic jusqu'au bas de la colonne
    nt = WorksheetFunction.Substitute(Cells(x, y).Value, " ", "/", 1) ' remplace le 1er espace par un /
    tablo = Split(nt, "/") 'scinde la chaine en fonction du /
    Cells(x, y) = tablo(0) ' inscription 1ere partie scindée dans la cellule
    Cells(x, y + 1) = tablo(1) ' inscription 2nde partie scindée dans la cellule de droite
    Next
    End Sub

    Le double-clic est à effectuer dans la 1ere cellule à traiter
    1
    1. anas_8320 Messages postés 3 Statut Membre
       
      Ah super ! ça marche bien ... très reconnaissant pour l'aide.
      0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Oui , macro à mettre dans le worksheet de la feuille concernée et qui se lance par double-clic dans la cellule à scinder :;
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    nt = WorksheetFunction.Substitute(Target, " ", "/", 1)' remplace le 1er espace par un /
    tablo = Split(nt, "/") 'scinde la chaine en fonction du /
    x = Target.Row ' ligne de la cellule
    y = Target.Column' colonne de la cellile
    Cells(x, y) = tablo(0) ' inscription 1ere partie scindée dans la cellule
    Cells(x, y + 1) = tablo(1)' inscription 2nde partie scindée dans la cellule de droite
    End Sub

    Si les cellules peuvent contenir des / remplacer ce signe dans la macro par un autre non utilisé
    Cdlmnt
    Via

    0
  3. anas_8320 Messages postés 3 Statut Membre
     
    Merci beaucoup, macro fonctionnelle, je l'ai appliqué et ça marche bien, j'ai juste une question,

    Est ce qu'il y a un moyen de lancer l'exécution sur toute la colonne sans devoir cliquer sur chaque cellule (car la en fait j'ai un fichier de 300 entrées), j'ai essayé de sélectionner toute la colonne et appliquer le double clique mais ça n'a pas marché.

    Excellente journée !
    0