Supprimer des colonnes selon leurs libellés en ligne 1

Le
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.
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
Daniel.C
Le #21375221
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.
Daniel.C
Le #21375211
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.
Bear76
Le #21375201
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
Bear76
Le #21375541
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.
Daniel.C
Le #21375641
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
Bear76
Le #21376241
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
Publicité
Poster une réponse
Anonyme