Modifer le nom d'un champ

  • Initiateur de la discussion Initiateur de la discussion jmde
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jmde

Guest
Bonjour,

J’intègre dans une table Access par « DoCmd.TransferSpreadsheet acImport »
des données d’une table Excel, mais certain nom de champ d’Excel sont long
et je voudrais les modifier lors de l’intégration des données.

Y à-t’il une solution en vba ? Si oui comment ?

Merci pour votre aide.

Salutations
 
Re : Modifer le nom d'un champ

Bonjour,

Tes champs sont sur la 1ere ligne j'imagine ?

Tu peux faire :

Sub Raccourcir()
Dim i as integer
For i = 1 To Range("IV1").End(xlToLeft).Column
If Len(Cells(1, i).Value) > 25 Then Cells(1, i).Value = Left(Cells(1, i), 25)
Next
End Sub

ou 25 est la longueur max

@ +

Juju
 
Re : Modifer le nom d'un champ

Bonjour juju_69,

Merci pour ta réponse, mais mes connaissances en Excel sont limitées,
et je ne pourrai pas exploiter tout seul ton code.

Mon problème est de pouvoir renommer le contenu de ces colonnes R1, AC1, AD1, AE1, AF1, qui servent de titres par un autre nom, avant de transférer les données dans la table Access.

Début du code :
Code:
'--- 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)

[COLOR="Red"]Traitement pour modifier les titres R1, AC1, AD1, AE1, AF1 [/COLOR]

'--- Passer à la partie Importation Feuille
     DoCmd.TransferSpreadsheet acImport, _
         acSpreadsheetTypeExcel9, "tbl Adhérents", varFichier, True, strFeuille & "!A1:AD20000"

Merci pour votre aide.

Salutations
 
Re : Modifer le nom d'un champ

Bonjour,

Je continu mes recherches sans succès.

J’ai essayé ce code rudimentaire, en débogage pas à pas je passe sur toutes les lignes
Mais aucunes modifications ne se fait sur ma feuille. Pour quelle raisons ?

Code:
With ActiveWorkbook.Sheets("Liste")
  
  .Range("R1").ClearContents
  .Range("R1").Value = "Nouveau nom"
   
  .Range("AC1").ClearContents
  .Range("AC1").Value = "Nouveau nom"
  
  .Range("AD1").ClearContents
  .Range("AD1").Value = "Nouveau nom"

  .Range("AE1").ClearContents
  .Range("AE1").Value = "Nouveau nom"
  
  .Range("AF1").ClearContents
  .Range("AF1").Value = "Nouveau nom"

End With
Salutations
 
Re : Modifer le nom d'un champ

Bonsoir,

Oui bien sur ,d'ailleur j'ai mis mon code sur le post 3
mais je ne sais pas s'il est correct pour faire la modif des champs.

Par contre je suis sur qu'il marche car lorsque je fais la modif des champs manuellement et que je lance le code le "DoCmd.TransferSpreadsheet acImport" fonctionne bien.

Salutations
 
Re : Modifer le nom d'un champ

Bonjour juju 69, jmde,

Si j'ai bien suivi, essaye ceci:
Code:
'--- Ouvrir chaque document sélectionné et le traiter
     For Each varFichier In fd.SelectedItems
     xlApp.Workbooks.Open (varFichier)
[B]With xlApp.Workbooks(varFichier).Sheets("liste")[/B]  
  .Range("R1").ClearContents
  .Range("R1").Value = "Nouveau nom"
   
  .Range("AC1").ClearContents
  .Range("AC1").Value = "Nouveau nom"
  
  .Range("AD1").ClearContents
.....
.........
...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
432
Réponses
9
Affichages
888
Retour