Insertion de caract. dans File

  • Initiateur de la discussion Initiateur de la discussion jo
  • 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

jo

Guest
Bonjour à tous !

Je cherche à mettre des double cotes ou des limites à mon fichier (file)
format libre (ou .txt). C pour le préparer à une mise en forme sous excel.
J'ai les longueurs des caractères.
Je sais parcourir les lignes mais pas les caractéres....

par exemple:
in my file,
AAA BBB CC DDDDXDC
ZZZ DDD RR

je veux ouvrir ce fichier "format libre" et insèrer après chaq colonne
des limites comme ' ou '' .


Merci d'avance!
 
Salut Jo

Si tu souhaite inserer un ' ou '' à la place de chaque espace dans ton fichier pour le préparer une importation auto dans excel cela est peut être un peu compliquer et redondant. Si tu veu tu peu utiliser un systéme à deux feuille :

Je m'explique:

- Dans un premier temps tu fait ton importation sans choisir de séparateur. Tu va donc te retrouver avec une feuille qui ne dispose que d'une seule colonne.

Ensuite :

dim m_nm_import as string 'nom de la feuille importer
dim m_nm_trait as string 'nom de la feuille servant de traitement
dim m_cell as range 'variable de cellule
dim m_plage 'variable de plage de selection
dim m_nb_car as integer 'nombre de caractére total de ta cellule active
dim m_rech_esp as integer 'recherche de la position des espaces
'variable de boucle
dim i as integer
dim j as integer

'insert ta macro d'importation

m_nm_import=activesheet.name
worksheet.add
m_nm_trait="traitement"
activesheet.name=m_nm_trait
sheets(m_nm_import).select
range("A1").select
activecell.end(xldown).select 'va jusqu'a la dernière cellule nom vide vers le bas
range("A1",activecell).select
m_plage=selection.address
i=0

for each m_cell in range(m_plage)
sheet(m_nm_import).select
m_nb_car=len(m_cell.value) 'récupère le nb de car de ta chaine
m_rech_esp=1000 'affecte une valeur provisoire
j=0
do until m_rech_esp=0
sheet(m_nm_import).select
m_rech_esp=instr(1,m_cell.value," ",vbtextcompare) 'recherche le premier espace depuis la gauche
sheet(m_nm_trait).select
range("A1").offset(i,j).select
activecell.value=left(m_cell.value,m_rech_esp-1)
j=j+1
loop
i=i+1
next m_cell

et voila normalement tu devrait te retrouver avec dans la feuille ''traitement '' un mot par cellule et par ligne.

Voila j'espère avoir satisfait ta demande..

A++
Wilfried ;-)
 
SAlut le forum, Wilfried !

je te remercie de ta réponse,
En faite je veux placer le caractère délimiteur suivant la longuerur de
chaque champs (colonne) ...Pcq il arrive d'avoir des balncs dans certaine colonnes :-(
Mais avec ton code je vais pouvoir l'adapter à mon pb.

Merci !

@++
 
- 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.
Retour