Scinder une colonne en 2

Fermé
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 23 juin 2019 à 09:39
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 25 juin 2019 à 14:03
Bonjour à tous,

Je suis sous Windows7 et Excel 2010.
Dans un classeur, sur la feuil1 j’ai «X» colonnes contenant chacune un nombre de cellules différents.
Je souhaiterais copier la 1ère cellule de la 1ère colonne de le feuil1 sur la cellule A1 de la seconde feuille et le reste de cette 1ère colonne à partir de la cellule B2 de la seconde feuille.
Puis copier la 1ère cellule de la 2ème colonne de la feuil1 dans la 1ère cellule libre en dessous de la dernière cellule occupée de la colonne B de la seconde feuil.
En exemple valant mieux qu’un long discours voici un exemple ci-dessous :

https://www.cjoint.com/c/IFxhL0oHDJW

Merci d’avance pour votre aide.
Mistral
A voir également:

11 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 juin 2019 à 10:32
Bonjour,

Le nombre de cellules maxi dans une colonne est de Combien ?

vu la canicule, je pense te faire ça dans la journée...

@+
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
23 juin 2019 à 10:53
Bonjour et merci à toi Michel

Cela ne devrait pas dépasser 25 lignes et le nombre de colonne de la feuil1 ne devrait pas dépasser 20.

@+
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
23 juin 2019 à 12:57
Bonjour à vous deux

Avec une macro, à mettre dans un module et à lancer à partir de n'importe quelle feuille :
Sub classement()
For n = 1 To Sheets("Feuil1").Rows(1).Find("*", , , , xlByRows, xlPrevious).Column
x = x + 1
Sheets("Feuil2").Range("A" & x) = Sheets("Feuil1").Cells(1, n)
For t = 2 To Sheets("Feuil1").Columns(n).Find("*", , , , xlByColumns, xlPrevious).Row
x = x + 1
Sheets("Feuil2").Range("B" & x) = Sheets("Feuil1").Cells(t, n)
Next
Next
End Sub

Cdlmnt
Via
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 23 juin 2019 à 13:01
Re,

Bonjour Via: Alors, tu me piques mon petit train électrique ? :o))

proposition:
https://mon-partage.fr/f/vC4fmt8R/
c'est pratiquement instantané...
(restitution actuellement en feuille 3 "essai" par prudence.)

0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
23 juin 2019 à 13:10
Hello michel

Loin de moi l'idée de te piquer le truc, je pensais, comme tu demandais du temps, que tu allais proposer une solution par formules ☺

le demandeur aura 2 propositions au lieu d'une
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 juin 2019 à 15:32
T'inquiète pas, c'était juste un clin d’œil pour plaisanter
amicalement
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
23 juin 2019 à 15:54
Alors là je suis déçu ...
Mais ne t’inquiète pas, j'avais bien compris.
0

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

Posez votre question
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
23 juin 2019 à 15:42
Merci à vous deux et je dois vous avouer que c’est bien la première fois que deux mecs se battent pour moi …
J’ai testé vos deux solutions et elles fonctionnent parfaitement la première fois.
Par contre, si on ajoute, ou supprime, une colonne ou une ligne sur la feuil1 la mise à jour de la feuil2 pose problème. On retrouve plusieurs fois la même valeur en colonne A de la feuil2.
La feuille deux doit pouvoir être mise à jour chaque fois que la feuil1 évolue et pourquoi pas automatiquement à chaque modification. On pourrait, peut-être inclure cette macro dans une procédure «Worksheet_Change» …
La cerise sur le gâteau serait de pouvoir conserver la taille, la couleur de la police de la feuil1 sur le feuil2.

@+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 23 juin 2019 à 18:19
deux mecs se battent pour moi …
?????
N'importe quo i!!!!!

Par contre, si on ajoute, ou supprime, une colonne ou une ligne sur la feuil1 la mise à jour de la feuil2 pose problème. On retrouve plusieurs fois la même valeur en colonne A de la feuil2.
La feuille deux doit pouvoir être mise à jour chaque fois que la feuil1 évolue et pourquoi pas automatiquement à chaque modification. On pourrait, peut-être inclure cette macro dans une procédure «Worksheet_Change» …
La cerise sur le gâteau serait de pouvoir conserver la taille, la couleur de la police de la feuil1 sur le feuil2.


ça, il faut le dire au départ pour nous éviter de bosser n+p+q fois (c'est vrai, on est bénévoles, donc, aucune raison de présenter le boulot clairement et complètement)

Adieu
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
24 juin 2019 à 08:37
L’humour est un art oh combien difficile …
Michel je te prie de bien vouloir accepter toutes mes excuses si je t’ai blessé avec une phrase qui se voulait être écrite au second degré.
Par contre, je prends bonne note de ta remarque et à l’avenir je ferais en sorte d’être le plus précis possible, dès le départ, dans la formulation de mes questions, même si je reste convaincu que les choses peuvent évoluer au fur et à mesure qu’elles avancent.
Encore merci à toi pour ton aide.
Mistral
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
23 juin 2019 à 15:56
Ok dans ce cas voilà la procédure adéquate :
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Feuil2").Range("A:B").ClearContents
For n = 1 To Sheets("Feuil1").Rows(1).Find("*", , , , xlByRows, xlPrevious).Column
x = x + 1
Sheets("Feuil2").Range("A" & x) = Sheets("Feuil1").Cells(1, n)
Sheets("Feuil2").Range("A" & x).Font.Size = Sheets("Feuil1").Cells(1, n).Font.Size
Sheets("Feuil2").Range("A" & x).Font.Color = Sheets("Feuil1").Cells(1, n).Font.Color
For t = 2 To Sheets("Feuil1").Columns(n).Find("*", , , , xlByColumns, xlPrevious).Row
x = x + 1
Sheets("Feuil2").Range("B" & x) = Sheets("Feuil1").Cells(t, n)
Sheets("Feuil2").Range("B" & x).Font.Size = Sheets("Feuil1").Cells(t, n).Font.Size
Sheets("Feuil2").Range("B" & x).Font.Color = Sheets("Feuil1").Cells(t, n).Font.Color
Next
Next

End Sub


avec la cerise ☺

0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
24 juin 2019 à 08:40
Bonjour,

J'espère que tu n'es pas froissé de ma remarque d'hier vous concernant toi et Michel. Si tel était le cas je te prie d'accepter toutes mes excuses.
Je découvre seulement ce matin ta réponse je vais tester cela et je te tiens au courant.
Merci à toi.
Cordialement
Mistral
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
24 juin 2019 à 10:35
Bonjour Via,

Je viens de tester ta procédure Worksheet et elle fonctionne parfaitement.

Mille mercis à toi.
Cordialement.
Mistral
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
25 juin 2019 à 11:45
Bonjour à tous,

J’ai préparé le classeur ci-joint pour les besoins d’une association en utilisant EXCEL2010 sous Windows7.
Jusqu’à présent tout fonctionne parfaitement, les listes déroulantes dynamiques et le calcul des soldes, courant et bancaire.

Là ou je coince sur la feuille «Opérations»:
- Pour éviter d’incrémenter mes formules quand, j’ajoute une ligne j’ai essayé de transformer ma feuille en tableau.
Problème : les listes déroulantes des colonnes E&F ne sont pas prises en compte lors de la transformation en tableau. Y a-t-il une solution ?

- Pour effacer une ligne, j’ai créé une procédure «Worksheet»sur la feuille opération qui donne la date du jour de création et qui efface la ligne quand on efface la cellule «Sous catégorie» de la ligne.
Problème : ça fonctionne parfaitement pour la dernière, mais je me retrouve avec une ligne vide pour les autres. Comment faire pour effacer une ligne et remonter celles du dessous d’une ligne ?

Un lien pour pour mon classeur :
https://www.cjoint.com/c/IFzjQGUdrYW

Merci d’avance pour votre aide.
Mistral
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
Modifié le 25 juin 2019 à 13:49
Re

Pour les listes déroulantes je n'ai pas de solution dans ton tableau sauf celle d'étirer les formules sur plusieurs lignes dès le départ
Pourtant normalement les liste déroulantes s'incrémentent bien dans un tableau
Essaie de rebâtir ton tableau à partir d'une seule ligne avec les listes déroulantes

Mais le problème est que le tableau s'agrandit (et donc les formules et listes incrémentées) lorsqu'on entre une donnée sur une nouvelle ligne, mais apparemment chez toi la nouvelle donnée se fait dans catégorie, donc dans une liste déroulante !!

Pour la suppression d'une ligne quand on efface la sous-catégorie j'ai modifié ta macro pour que toute la ligne soit supprimée et non effacée mais cela occasionne des REF dans les formules des colonnes M et N pour les lignes en dessous de celle supprimée, j'ai donc modifié également les formules avec des INDIRECT pour que la formule s'applique bien à la ligne en cours

https://www.cjoint.com/c/IFzlOuHfZWR

Cdlmnt
Via

0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
25 juin 2019 à 13:57
Re

Je crois avoir trouvé ce qui clochait dans ton tableau, la ligne de titres séparée des autres lignes
En présentant différemment pour l'avoir vraiment au dessus les formules et les liste déroulantes s’incrémentent bien
https://www.cjoint.com/c/IFzl25yy4DR
Il suffit de rentrer l'objet avant la catégorie pour que les liste déroulante de catégorie et de sous catégorie s'affichent

Cdlmnt
Via
0
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
25 juin 2019 à 14:03
Je regarde ça et je reviens vers toi ...
0