Scinder une colonne en 2

Signaler
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
-
Mistral_13200
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
-
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

11 réponses

Messages postés
16132
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 mars 2020
2 906
Bonjour,

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

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

@+
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
3
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.

@+
Messages postés
11943
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 mars 2020
1 750
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
Messages postés
16132
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 mars 2020
2 906
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.)

via55
Messages postés
11943
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 mars 2020
1 750
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
michel_m
Messages postés
16132
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 mars 2020
2 906
T'inquiète pas, c'était juste un clin d’œil pour plaisanter
amicalement
Mistral_13200
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
3
Alors là je suis déçu ...
Mais ne t’inquiète pas, j'avais bien compris.
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
3
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.

@+
michel_m
Messages postés
16132
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 mars 2020
2 906
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
Mistral_13200
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
3
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
Messages postés
11943
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 mars 2020
1 750
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 ☺

Mistral_13200
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
3
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
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
3
Bonjour Via,

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

Mille mercis à toi.
Cordialement.
Mistral
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
3
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
Messages postés
11943
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 mars 2020
1 750
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

Messages postés
11943
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 mars 2020
1 750
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
Messages postés
520
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
12 janvier 2020
3
Je regarde ça et je reviens vers toi ...