Modifier les titres des colonnes par vba
Bonjour,
J’intègre dans une table Access par « DoCmd.TransferSpreadsheet acImport » des données d’une table Excel en csv, mais certains titres des colonnes d’Excel doivent être renommés avant l’intégration des données.
Début du code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| '--- Préparer la boîte de dialogue Ouvrir
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Choisissez un classeur"
fd.InitialFileName = "*.xls"
fd.AllowMultiSelect = True
'--- Personnaliser la liste déroulante Type de fichier
fd.Filters.Clear
fd.Filters.Add "Fichiers Excel", "*.xls"
fd.Filters.Add "Tous les fichiers", "*.*"
fd.FilterIndex = 1
'--- Ouvrir la boîte de dialogue
If fd.Show = 0 Then
'--- L'action a été annulée
Set fd = Nothing
Exit Sub
End If
'--- Ouverture de l'application
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlw = xlApp.ActiveWorkbook '--- Récupération du classeur
par défaut
'--- Ouvrir chaque document sélectionné et le traiter
For Each varFichier In fd.SelectedItems
xlApp.Workbooks.Open (varFichier)
***************************************
* Traitement pour modifier les titres des colonnes *
***************************************
'--- Passer à la partie Importation Feuille
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "tbl Adhérents", varFichier, True, strFeuille & "!A1:AD20000" |
Y à-t’il une solution ? Si oui comment ?
Merci pour votre aide.
Salutations
Il faut lire tout le texte
Bien sûr qu'il passe sur toute la ligne mais simplement pour effacer les espaces dans les titres de colonnes ! Puisque que c'est le traitement que je lui ai fait faire ! :)
Et s'il n'y a pas d'espace à supprimer...
J'ai supposé que le problème était la présence d'espaces dans l'entête.
Que faut-il faire ?
Ce n'est pas précisé dans le premier post !
il faut modifier la ligne :
Code:
1 2
|
Cells(1, c) = Replace(Cells(1, c), " ", "") |
mais comment ?
Quel est le problème dans l'entête de colonne ?
Autre supposition :
Si absence d'entête de colonne :
Code:
1 2 3 4
|
If Cells(1,c) = "" Then
Cells(1, c) = "Colonne" & c
End If |
Désolé pour le suivi des posts...
ESVBA