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

Supprimer des colonnes selon leurs libellés en ligne 1

6 réponses
Avatar
Bear76
Bonjour à toute la communauté,

Je suis toujours dans le contexte d'importer des données dans un
classeur xlsx (2007) via une base de données en ligne.

Le problème est que les dimensions (nombre de lignes et nombre de
colonnes) du tableau varient selon le cas.

J'utilise actuellement et aveuglément Sheets(1).Columns("B:C").Delete
Shift:=xlToLeft, etc.

Pour être certain de supprimer les bonnes colonnes, je voudrais
intégrer dans cette procédure la vérification des libellés se trouvant
quelque part sur la première ligne de ce tableau.

Si quelqu'un pouvait m'aider.
Merci d'avance.

6 réponses

Avatar
Daniel.C
Bonjour.
La macro suivante supprime les colonnes dont les libellés ne figurent
pas dans la matrice "LibellésOK" :

Sub test()
Dim LibellésOK
'libellés à conserver
LibellésOK = Array("Libellé1", "Libellé2", "Libellé3", "Libellé4")
'remplace "ATraiter.xlsx" par le nom de ton classeur
Workbooks("ATraiter.xlsx").Activate
For i = 1 To Cells(1, Cells.Columns.Count).End(xlToLeft).Column
If Not IsNumeric(Application.Match(Cells(1, i), LibellésOK, 0))
Then
Columns(i).Delete
End If
Next i
End Sub

Cordialement.
Daniel

Bonjour à toute la communauté,

Je suis toujours dans le contexte d'importer des données dans un classeur
xlsx (2007) via une base de données en ligne.

Le problème est que les dimensions (nombre de lignes et nombre de colonnes)
du tableau varient selon le cas.

J'utilise actuellement et aveuglément Sheets(1).Columns("B:C").Delete
Shift:=xlToLeft, etc.

Pour être certain de supprimer les bonnes colonnes, je voudrais intégrer dans
cette procédure la vérification des libellés se trouvant quelque part sur la
première ligne de ce tableau.

Si quelqu'un pouvait m'aider.
Merci d'avance.
Avatar
Daniel.C
Oubli:
Tu ne peux pas enregisttrer de macro avec un classeur de type .xlsx.
Soit tu enregistres ton classeur type .xlsm, soit tu mets la macro dans
un autre classeur.
Daniel

Bonjour à toute la communauté,

Je suis toujours dans le contexte d'importer des données dans un classeur
xlsx (2007) via une base de données en ligne.

Le problème est que les dimensions (nombre de lignes et nombre de colonnes)
du tableau varient selon le cas.

J'utilise actuellement et aveuglément Sheets(1).Columns("B:C").Delete
Shift:=xlToLeft, etc.

Pour être certain de supprimer les bonnes colonnes, je voudrais intégrer dans
cette procédure la vérification des libellés se trouvant quelque part sur la
première ligne de ce tableau.

Si quelqu'un pouvait m'aider.
Merci d'avance.
Avatar
Bear76
Daniel.C a couché sur son écran :
Oubli:
Tu ne peux pas enregisttrer de macro avec un classeur de type .xlsx. Soit tu
enregistres ton classeur type .xlsm, soit tu mets la macro dans un autre
classeur.
Daniel

Bonjour à toute la communauté,

Je suis toujours dans le contexte d'importer des données dans un classeur
xlsx (2007) via une base de données en ligne.

Le problème est que les dimensions (nombre de lignes et nombre de colonnes)
du tableau varient selon le cas.

J'utilise actuellement et aveuglément Sheets(1).Columns("B:C").Delete
Shift:=xlToLeft, etc.

Pour être certain de supprimer les bonnes colonnes, je voudrais intégrer
dans cette procédure la vérification des libellés se trouvant quelque part
sur la première ligne de ce tableau.

Si quelqu'un pouvait m'aider.
Merci d'avance.





Bonjour Daniel,
Désolé, faute de frappe de ma part. C'est bien en xlsm qu'est
enregistré mon classeur.
Cordialement
Avatar
Bear76
Daniel.C a exposé le 14/03/2010 :
Bonjour.
La macro suivante supprime les colonnes dont les libellés ne figurent pas
dans la matrice "LibellésOK" :

Sub test()
Dim LibellésOK
'libellés à conserver
LibellésOK = Array("Libellé1", "Libellé2", "Libellé3", "Libellé4")
'remplace "ATraiter.xlsx" par le nom de ton classeur
Workbooks("ATraiter.xlsx").Activate
For i = 1 To Cells(1, Cells.Columns.Count).End(xlToLeft).Column
If Not IsNumeric(Application.Match(Cells(1, i), LibellésOK, 0)) Then
Columns(i).Delete
End If
Next i
End Sub

Cordialement.
Daniel

Bonjour à toute la communauté,

Je suis toujours dans le contexte d'importer des données dans un classeur
xlsx (2007) via une base de données en ligne.

Le problème est que les dimensions (nombre de lignes et nombre de colonnes)
du tableau varient selon le cas.

J'utilise actuellement et aveuglément Sheets(1).Columns("B:C").Delete
Shift:=xlToLeft, etc.

Pour être certain de supprimer les bonnes colonnes, je voudrais intégrer
dans cette procédure la vérification des libellés se trouvant quelque part
sur la première ligne de ce tableau.

Si quelqu'un pouvait m'aider.
Merci d'avance.





Bonjour,
Merci pour cette procédure.
Cependant, il y a un problème.
En A1 j'ai Num Cap et en B1 j'ai Nom Cap.
Lorsque j'exécute votre procédure, la colonne A contenant Num Cap en A1
est bien supprimée mais pas la colonne B contenant dans B1 Nom Cap.
Les autres colonnes dont les libellés respectifs ne sont pas listés
dans Array() sont supprimées.
Cordialement.
Avatar
Daniel.C
Au temps pour moi :

Sub test()
Dim LibellésOK
'libellés à conserver
LibellésOK = Array("Libellé1", "Libellé2", "Libellé3", "Libellé4")
'remplace "ATraiter.xlsx" par le nom de ton classeur
Workbooks("ATraiter.xlsx").Activate
For i = Cells(1, Cells.Columns.Count).End(xlToLeft).Column To 1 Step -1
If Not IsNumeric(Application.Match(Cells(1, i), LibellésOK, 0))
Then
Columns(i).Delete
End If
Next i
End Sub

Daniel

Daniel.C a couché sur son écran :
Oubli:
Tu ne peux pas enregisttrer de macro avec un classeur de type .xlsx. Soit
tu enregistres ton classeur type .xlsm, soit tu mets la macro dans un autre
classeur.
Daniel

Bonjour à toute la communauté,

Je suis toujours dans le contexte d'importer des données dans un classeur
xlsx (2007) via une base de données en ligne.

Le problème est que les dimensions (nombre de lignes et nombre de
colonnes) du tableau varient selon le cas.

J'utilise actuellement et aveuglément Sheets(1).Columns("B:C").Delete
Shift:=xlToLeft, etc.

Pour être certain de supprimer les bonnes colonnes, je voudrais intégrer
dans cette procédure la vérification des libellés se trouvant quelque part
sur la première ligne de ce tableau.

Si quelqu'un pouvait m'aider.
Merci d'avance.





Bonjour Daniel,
Désolé, faute de frappe de ma part. C'est bien en xlsm qu'est enregistré mon
classeur.
Cordialement
Avatar
Bear76
Daniel.C a exposé le 14/03/2010 :
Au temps pour moi :

Sub test()
Dim LibellésOK
'libellés à conserver
LibellésOK = Array("Libellé1", "Libellé2", "Libellé3", "Libellé4")
'remplace "ATraiter.xlsx" par le nom de ton classeur
Workbooks("ATraiter.xlsx").Activate
For i = Cells(1, Cells.Columns.Count).End(xlToLeft).Column To 1 Step -1
If Not IsNumeric(Application.Match(Cells(1, i), LibellésOK, 0)) Then
Columns(i).Delete
End If
Next i
End Sub

Daniel



Bonjour,
Merci beaucoup
Cordialement