Découper une colone en plusieurs (pas comme vous pensez!)

  • Initiateur de la discussion Initiateur de la discussion Zdouf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Zdouf

XLDnaute Nouveau
Bonjour à tous,

Après plusieurs recherche, je viens à vous. Je cherche par le biais d'une macro à séparer une colonne en plusieurs mais pas comme il est souvent demandé sur le net (séparation d'une chaine de caractèere en plusieurs colonnes).

Je m'explique:
J'ai une colonne unique avec des chaines de caractère sur 1000 lignes environ, avec des redondances. Je cherche donc à couper la colonne dès apparition d'un mot spécifique dans une ligne et à coller cette coupe de lignes dans la colonne suivante.

Il me suffirait de faire une boucle recherchant la ligne contenant le mot dans chaque nouvelle colonne collée qui couperait à ce moment là dès la ligne contenant le mot et recollerait dans la colonne suivante... c.f. le petit exemple joint

Le problème: je suis une quiche en programmation Excel, je débute!

D'avance, merci.
 

Pièces jointes

  • 2011-08-06 18h43_35.png
    2011-08-06 18h43_35.png
    16.8 KB · Affichages: 106
Dernière édition:
Re : Découper une colone en plusieurs (pas comme vous pensez!)

Bonsoir, re papou

Bah alors t'as oublié tes Dim 😉

Dim cel As Range

PS: bravo pour ce code
auquel j'aurai ajouté en plus du dim plus haut un petit
Application.ScreenUpdating =False de derrière les fagots 😉
 
Re : Découper une colone en plusieurs (pas comme vous pensez!)

Bonjour Zdouf, Papou-net, Staple1600.

S'il y a beaucoup de lignes à traiter, je te propose une méthode nettement plus rapide ici :
VB:
Private Sub CommandButton1_Click()
Dim c As Range, d As Range, Dest As Range, Fin As Range
Set Dest = [C1]: Set Fin = [A60000].End(xlUp)(2, 1)
Fin = [A1]
With Range("A2:A65536")
  Set c = .Find(After:=[A2], what:=[A1].Text, LookIn:=xlValues, lookat:=xlWhole)
     Range([A1], c(0, 1)).Copy Dest(1, 0)
     Do While c.Address <> Fin.Address
       Set d = .FindNext(c)
       Range(c, d(0, 1)).Copy Dest
       Set Dest = Dest(1, 2)
       Set c = d
     Loop
End With
Fin = ""
End Sub
 

Pièces jointes

Re : Découper une colone en plusieurs (pas comme vous pensez!)

Bonjour à tous.
Merci pour vos réponses!!
Au travail, je teste ça ce soir en rentrant et vous tiens au courant.
En tous cas, grâce à vous, j'en connais un peu plus sur les commandes VBA et leurs arguments: encore merci!!
Bonne journée.
 
Re : Découper une colone en plusieurs (pas comme vous pensez!)

Bonjour!

Bon, ça marche du tonnerre!
J'ai repris le code de Softmama (bcp de lignes à traiter).
Je l'ai modifié pour mes besoins (cellule contenant plusieurs mot dont celui recherché: LookAt:=xlPart).
Grâce à vous, je peux bosser sur votre exemple: étudier et comprendre la classe "range", les boucle...
Merci encore!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
1 K
Retour