Colonne --> colonnes

Résolu/Fermé
guit12 Messages postés 10 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 26 mai 2018 - 16 avril 2018 à 11:51
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 19 avril 2018 à 08:50
Bonjour!

J'ai une colonne avec des centaines de valeurs séparées par un texte :
2
5
8
OFF
8
4
9
7
OFF
...

Je souhaiterai obtenir X colonnes avec les valeurs séparées par le texte (ie OFF) :
2 8
5 4
8 9
7

etc...

Je ne trouve pas de réponse!
En vous remerciant!


A voir également:

11 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
Modifié le 16 avril 2018 à 12:23
Bonjour
"Je ne trouve pas de réponse!"
...cela ne semble pas trop surprenant, vu votre question
vous demandez des colonnes pour ce qui est séparé par des OFF, mais votre exemple de solution ne correspond pas tout à fait à ça
si on s'en tient à la question:
2 5 8
8 4 9 7
etc>...
à vous lire?
ctrdlmnt
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 40
Modifié le 16 avril 2018 à 13:47
Hello,

Si j'ai bien compris la question voici un code en VBA à introduire dans un module :

Sub TEST()
Dim sht As Worksheet
Dim LastRow As Integer, LastColumn As Integer, LR As Integer
Dim Copyrange As Range

Set sht = ActiveSheet

LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row

For i = 1 To LastRow

LastColumn = sht.Cells(1, sht.Columns.Count).End(xlToLeft).Column
LR = sht.Cells(sht.Rows.Count, LastColumn).End(xlUp).Row

If Cells(i, LastColumn).Value = "OFF" Then
Set Copyrange = Range(Cells(i + 1, LastColumn), Cells(LR, LastColumn))
Copyrange.Cut Cells(1, LastColumn + 1)
i = 0
LR = sht.Cells(sht.Rows.Count, LastColumn).End(xlUp).Row
Cells(LR, LastColumn).Clear
End If

Next i

Application.CutCopyMode = False

End Sub


Il n'est pas super propre et il y a surement beaucoup de manières différentes de le faire, mais ça marche mon côté
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 40
Modifié le 16 avril 2018 à 14:56
EDIT : Effectivement je n'ai pas précisé, mais suite au message de Michel_m je vais le faire :
Le code marche si la colonne de départ est en A et commence dès la première ligne.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
16 avril 2018 à 15:06
Bonjour

pendant que tu y es, ajoute après les déclarations
Application.screenupdating=False

question confort visuel et surtout rapidité

pas la peine de remettre à True en fin de procédure (la macro rend la main au systeme)
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 40 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
16 avril 2018 à 15:18
Oops, oui j'ai oublié de le rajouter après compilation. Je n'arrive pas à modifier mon premier message, je ne sais pas pourquoi
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
16 avril 2018 à 14:52
Bonjour,

Pour reprendre la réflexion de notre ami Vaucluse, pourquoi as tu inscrit le 7 en 1° colonne? faute de frappe?

Des centaines de valeurs? 500 valeurs ? 1000 ? 5000 ? 100000 ? suivant le nombre, le code VBA pourra utiliser des méthodes différentes ou une solution par formule....

Sur ton classeur, démarre t'on à la ligne 1 ou2 ou.....? quelle colonne: A, X, CD ?

où met on le résultat ? à la place de la colonne initiale ?

Merci d'^tre précis dans ta demande.

au besoin
Mettre le classeur sans données confidentielles en pièce jointe sur 
https://mon-partage.fr/
Puis faire un clic droit copier le raccourci et coller dans votre message




0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
16 avril 2018 à 16:26
Pas de réponse de Guit12... on laisse tomber ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
Modifié le 16 avril 2018 à 16:34
Bonjour à tous,

Je souhaiterai obtenir X colonnes...
Avec ton exemple, sans doute trop restrictif, X=2 mais... qu'en est-t-il ?
Que se passe-t-il après le 2nd OFF ?
Comme dit michel il faut être précis quand on fait une demande.
eric

0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
16 avril 2018 à 17:48
Ca fait plaisir les gens qui demandent de l'aide et ne suivent pas la discussion qui cherche à l'aider.Belle mentalité de ... (au choix)

comme j'ai bossé
https://mon-partage.fr/f/yhApu5ta/
2500LIGNES avec 31 "OFF3 traitées en 0,15 secondes

Abandon du suivi
0
guit12 Messages postés 10 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 26 mai 2018
16 avril 2018 à 18:07
Bonjour,

Tout d'abord : je vous remercie.
Ensuite : j'ai posé la question puis je suis parti bossé donc je crois que ça peut se comprendre que je n'étais pas devant mon ordi - d'autant que je viens de faire l'A/R (3h) pour 4h de rdv ; merci de votre compréhension)

Sur le fond avant de regarder plus en détail les propositions :
j'ai appelé colonne ce qui est indiqué comme une colonne par excel (i.e. A) soit
Colonne A
1ere valeur
2eme valeur ....
xieme valeur
OFF
xième valeur +1
...

Sans qu'il y ait le même nombre de valeurs entre les off.

L'objectif est d'avoir les valeurs jusqu'au off sur A puis les valeurs suivantes sur B etc.

Je regarde!
Guillaume
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 40
Modifié le 17 avril 2018 à 09:42
Bonjour,

Le code proposé au dessus (Message #2) permet de répondre à votre demande. ATTENTION : Il ne marche que si les données de départ sont sur la colonne A et dès la premiere ligne. Sinon il faut adapter le code (vous pouvez le faire vous-même ou revenir vers moi :)). Il n'est pas forcement très optimisé. Je n'ai pas regardé la proposition de michel_m, mais elle est à essayer également.
0
guit12 Messages postés 10 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 26 mai 2018
17 avril 2018 à 10:04
Merci!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
17 avril 2018 à 09:07
Surtout, ne pas regarder la solution proposée... Ni m^me répondre à toutes les questions:
démarre t'on à la ligne 1 ou 2 ou.....?
de toutes façons...
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
17 avril 2018 à 12:01
Salut michel,

je ne te met pas +1 pour ne pas faire remonter ce post mais j'adhère totalement à ta remarque.
Trop fatigant de lire et faire un retour pour certains...
eric
0
guit12 Messages postés 10 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 26 mai 2018
17 avril 2018 à 12:35
Merci à tous!
Très (trop?*) réactif ici!!
Guillaume
  • si on répond pas dans l'heure du post aux sympathiques réponses des forumers on se fait mal voir - dommage! Tout n'est pas forcément urgentissime et puis en l'occurrence ça peut être urgent mais avoir d'autres choses en cours (comme conduire ;)). Quoiqu'il en soit je remercie une nouvelle fois et vous dis mult bravos.
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 40
17 avril 2018 à 13:21
Hello,
Tu as reussi à adapter le code ?
PS : Je n'ai pas besoin d'une réponse dans l'heure ^^
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
Modifié le 17 avril 2018 à 15:37
Ne pas répondre dans l'heure et ne faire aucun retour aux questions ou propositions sont 2 choses différentes.
C'est faire peu de cas du temps consacré à aider, aussi minime soit-il.
On en reparlera quand tu en seras à 20000 posts et 2000 vents Jauster ;-)
D'ailleurs tu vois que tu es curieux de savoir si tu lui as apporté qq chose qui l'intéresse ou non...
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 40 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
Modifié le 17 avril 2018 à 15:57
Oui je me doute bien, je ne suis qu'un néophyte VBA/Aide sur Forum, donc je pense que je vais vite comprendre :) C'est juste que mon petit coeur en sucre trouvait ca un peu brusque.
0
guit12 Messages postés 10 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 26 mai 2018
18 avril 2018 à 21:19
Eric,
Aux scouts, quand j'étais petit, j'ai appris qu'il fallait savoir donner sans attendre en retour... Si ton but est d'aider, aide et laisse les personnes qui ont des questions dans le bénéfice du doute lorsqu'ils ne répondent pas quand tu t'y attends.
A bon entendeur.
Je teste le code actuellement avec des lettres plutôt que les off!
Merci pour votre aide prompte et précieuse.
Guillaume
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
Modifié le 19 avril 2018 à 00:22
Bonjour,

j'ai appris qu'il fallait savoir donner sans attendre en retour...
Tu as lu quelques chose à ce sujet ? Tout ne tournait qu'autour du fait que tu ne fournissais aucune réponse aux questions, ni de retour sur des propositions.
On aurait dû t'apprendre à comprendre ce que tu lis aussi. Mais on peut également aborder le sujet oui.
Quand j'étais petit scout on m'a appris à dire bonjour, à répondre quand on me posait une question et à dire merci en recevant quelque chose. Ca ne devait pas être au même endroit.
eric

PS : et oui j'aime bien qu'on me dise merci si la personne est contente d'avoir été dépannée, c'est mon seul salaire ici. Si c'est au-dessus de tes possibilités (tu séchais un peu les scouts non ?) tu peux te payer un professionnel.
0
guit12 Messages postés 10 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 26 mai 2018
18 avril 2018 à 21:31
Ca marche nickel! (le code de celui qui bosse Michel (parce que moi je fous rien à 21h30 après une journée de travail...)).
Au lieu des off j'avais des h j'ai donc changé off par h dans le code et nickel!
Génial.
Merci.


RESOLU
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié le 19 avril 2018 à 08:54
(parce que moi je fous rien à 21h30 après une journée de travail...)).

Quel Héros du XXI° siècle !

Mossieu Guit a une haute opinion de lui-m^me!



0