Supprimer colonne si....

Le
Jacquouille
Bonjour

A partir d'un tableau d'une quarantaine de lignes, mais de trois col + 150
col baptisées au nom des élèves.
Je fais autant de copies que d'élèves et je baptise la feuille du nom de
l'élève. --> OK

Lors de cette copie, je voudrais supprimer toutes les col ne correspondant
pas aux titres des col "Num", "Matières", "Paragraphes" (soit les 3
premières du tableau) ET celle du nom de la feuille (soit Elèv1, puis
Elèv2)

Expliqué autrement, je voudrais, à partir de la 4° col, supprimer toutes les
col dont le titre est différent du nom de la feuille (nom de l'élève).

De cette manière, chaque élève aura sa feuille..
Un grand merci et bon WE à tous et tousses.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille (MPFE).
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #22471871
Bonjour.
Cette manière de faire est valable si tu as d'autres données sur la
feuille, sinon, il est plus rapide de recopier, pour chaque feuille les
trois premières colonnes et la colonne de l'élève.
Essaie :

Sub test()
Application.ScreenUpdating = False
With Sheets("Feuil1")
For i = 4 To .[IV1].End(xlToLeft).Column
.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Cells(1, i)
For x = [IV1].End(xlToLeft).Column To 4 Step -1
If Cells(1, x) <> Cells(1, i) Then Columns(x).Delete
Next x
Next i
End With
Application.ScreenUpdating = True
End Sub

Cordialement.
Daniel

Bonjour

A partir d'un tableau d'une quarantaine de lignes, mais de trois col + 150
col baptisées au nom des élèves.
Je fais autant de copies que d'élèves et je baptise la feuille du nom de
l'élève. --> OK

Lors de cette copie, je voudrais supprimer toutes les col ne correspondant
pas aux titres des col "Num", "Matières", "Paragraphes" (soit les 3
premières du tableau) ET celle du nom de la feuille (soit Elèv1, puis
Elèv2...)

Expliqué autrement, je voudrais, à partir de la 4° col, supprimer toutes les
col dont le titre est différent du nom de la feuille (nom de l'élève).

De cette manière, chaque élève aura sa feuille.....
Un grand merci et bon WE à tous et tousses.
Jacquouille
Le #22472091
Bonsoir Daniel
J'ai dû adapter car les noms de col sont en ligne 2.
Cela fonctionne ADMIRABLEMENT bien.
Un tout grand merci.
Ensuite, je dois classer la col D (points de l'élève) de chaque feuille.
Comment puis-je lui dire de faire cela pour toutes les feuilles sauf "base"
et "Résultats";?
Un tout grand merci
Jacques

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille (MPFE).

"DanielCo" i46gk9$lt$
Bonjour.
Cette manière de faire est valable si tu as d'autres données sur la
feuille, sinon, il est plus rapide de recopier, pour chaque feuille les
trois premières colonnes et la colonne de l'élève.
Essaie :

Sub test()
Application.ScreenUpdating = False
With Sheets("Feuil1")
For i = 4 To .[IV1].End(xlToLeft).Column
.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Cells(1, i)
For x = [IV1].End(xlToLeft).Column To 4 Step -1
If Cells(1, x) <> Cells(1, i) Then Columns(x).Delete
Next x
Next i
End With
Application.ScreenUpdating = True
End Sub

Cordialement.
Daniel

Bonjour

A partir d'un tableau d'une quarantaine de lignes, mais de trois col +
150 col baptisées au nom des élèves.
Je fais autant de copies que d'élèves et je baptise la feuille du nom de
l'élève. --> OK

Lors de cette copie, je voudrais supprimer toutes les col ne
correspondant pas aux titres des col "Num", "Matières", "Paragraphes"
(soit les 3 premières du tableau) ET celle du nom de la feuille (soit
Elèv1, puis Elèv2...)

Expliqué autrement, je voudrais, à partir de la 4° col, supprimer toutes
les col dont le titre est différent du nom de la feuille (nom de
l'élève).

De cette manière, chaque élève aura sa feuille.....
Un grand merci et bon WE à tous et tousses.




news.free.fr
Le #22472081
Tu veux juste trier la colonne D, ou le faire avec une ou plusieurs des
3 premières colonnes?
Daniel
Jacquouille
Le #22472121
Bonsoir
Tri 1 sur D, et 2° clé sur A.
Mais, j'ai ajouté à ta macro et juste avant le next:
Range("D2").Select
Range("A2:D41").Sort Key1:=Range("D3"), Order1:=xlDescending,
Key2:=Range _
("A3"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1,
MatchCase _
:úlse, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal

fourni par l'enregistreur .....et cela marche.
Encore un tout grand merci.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille (MPFE).

"news.free.fr" i46kn5$cp0$
Tu veux juste trier la colonne D, ou le faire avec une ou plusieurs des 3
premières colonnes?
Daniel


Publicité
Poster une réponse
Anonyme