Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer colonne si....

4 réponses
Avatar
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).

4 réponses

Avatar
DanielCo
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.
Avatar
Jacquouille
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" a écrit dans le message de news:
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.




Avatar
news.free.fr
Tu veux juste trier la colonne D, ou le faire avec une ou plusieurs des
3 premières colonnes?
Daniel
Avatar
Jacquouille
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" a écrit dans le message de news:
i46kn5$cp0$
Tu veux juste trier la colonne D, ou le faire avec une ou plusieurs des 3
premières colonnes?
Daniel