Découpe AUTO de colonne xls en format TXT sur

luckisurf -  
 Utilisateur anonyme -
Bonjour,

Découpe AUTO de colonne xls en format TXT sur le disque dur

Bonjour à toutes et à tous

MA QUESTION :
Je voudrais trouver une solution pour découper AUTOMATIQUEMENT des colonnes d'un fichier XLS en format texte par exemple.
J' ai créer un site en html simple avec excel , je voudrais un programme ou une formule pour découper automatiquement des dizaines de colonnes et qu'elles s'enregistre sur mon disuqe dur à un emplacement précis sous la forme .TXT (je me servirai d'un renomer pour changer l'entention en .HTML)
Et il faudrait que le fichier TXT porte le texte de la premiere cellule de la premiere colonne a découper , et ainsi de suite.

J'ai chercher, chercher, je tourne en rond, on parle de VBA mais je sais pas ce que c'est, on en tout cas je ne sais me servir de visual basic. Y a il moyen de créer une formule par exemple dans excel qui fasse ces enregistrements de colonnes en format txt de facon auto ? ou a chaque fois que je valide ou lance excel.

Merci de m'aider

en l'attente

LUCKISURF@yahoo.fr
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. Matio Messages postés 684 Statut Membre 300
     
    Tu peux enregistrer au format csv
    0
  2. luckisurf Messages postés 5 Statut Membre
     
    merci matio mais je débute , c'est quoi CSV ??

    tu connais un script qui enregistrer automatiquement les colonnes d'excell en VSV , puis je renome les fichier CSV en changant l'extention en html et ca marcherait ???
    0
  3. Utilisateur anonyme
     
    Bonjour,

    Sous Excel :

    Aller sous VBE
    [Alt] + [F11]

    Clic droit sur le nom du classeur dans partie gauche
    Choisir [Insertion/Module]

    Dans le fenêtre de droite, faire un copier/coller de la
    procédure ci-dessous :

    Sub FormatTexte()
    
        Dim objFSO As Object, objFichier As Object
        Dim strFichier As String, Plage As Range
        Dim Ligne As Long, Colonne As Long
        Dim strLigne As String
    
        ' Chemin d'accès au fichier
        strFichier = ThisWorkbook.Path & "\1.html"
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        ' Création d'un fichier
        Set objFichier = objFSO.CreateTextFile(strFichier, 2)
        ' Sélection de la plage à couvrir
        Set Plage = Range("A1:C5")
        strLigne = ""
        ' Pour chaque ligne de la sélection
        For Ligne = 1 To Plage.Rows.Count
            ' Pour chaque colonne de la sélection
            For Colonne = 1 To Plage.Columns.Count
                ' Si dernière colonne, place code saut de ligne en html
                If (Colonne = Plage.Columns.Count) Then
                    strLigne = strLigne & Cells(Ligne, Colonne).Value & "<BR>"
                Else
                ' Sinon, ajoute un espace entre chaque saisie
                    strLigne = strLigne & Cells(Ligne, Colonne).Value & " "
                End If
            Next Colonne
            ' Écrire nouvelle ligne
            objFichier.WriteLine strLigne
        Next Ligne
        ' Fermeture du fichier
        objFichier.Close
        
    End Sub
    '
    


    Ensuite, sous Excel :

    //Outils/Macro/Macro...
    Choisir [FormatTexte]

    Voir le fichier [1.html] dans le même dossier que le fichier excel.

    Lupin
    0
  4. luckisurf Messages postés 5 Statut Membre
     
    Petite precision

    j'ai pas Microsoft Office mais OPEN office et star office ??

    est ce pareil ??

    (merci de ton aide)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. luckisurf Messages postés 5 Statut Membre
     
    J'ai reussit a trouver ou ca se fait dans open office

    je la copie,
    je l'enregistre

    je vais dans executer macro

    il propose celle que j'ai créée avec FOMAT TXT

    je valide mais j'ai une erreur dans la formule ou je devais changer quelque chose

    erreur syntaxe
    type de données range inconnues

    Dois je remodifier la formule ??

    moi j'ai 144 colonnes qui ont chacunes 84 lignes

    colonne 1: de B1 a B84 jusqu'à colonne XT1 à XT84

    B1 --- ------ XT1
    .
    .
    .
    .
    B84 --------- XT84

    et je suis sur la feuille intitulée Feuille3

    Merci de ton aide

    LUCKISURF
    0
  7. luckisurf Messages postés 5 Statut Membre
     
    J'ai modifié la plage (c'est pas XT mais DT la valeur max)

    J'ai indiqué la plage B1 à DT85 comme ci dessus mais toujurs la meme erreur de range

    Dois je renseigner autre chose ?? l'adresse de mon fichier XLS sur mon disque dur

    Quand c'est marqué ligne et colonne (en francais) doisje le remplacer ??

    est ce a cause de cela l'erreur de range ??

    Si tu réussi à m'aider à faire cette decoupe auto de colonne en TXT, je te promet que je t'envoi une de chocolat par la poste (promis, juré , craché ! lol )

    ca fait 15 jour que j'enregistre mes 144 pages une a une (quand je modifie le site) et ca serait hyper sympa de trouver un truc qui le fasse d'un clic

    si j'ai texte dans ma cellule b1 "voiture" et dans C1"choufleur" , est ce trop demandé que les colonnes se decoupe en TXT respectivement en voiture.txt (la premiere colonne) et choufleur.txt (la seconde colonne et ainsi de suite)

    Merci de votre aide

    REM ***** BASIC *****

    Sub FormatTexte()

    Dim objFSO As Object, objFichier As Object
    Dim strFichier As String, Plage As Range
    Dim Ligne As Long, Colonne As Long
    Dim strLigne As String

    ' Chemin d'accès au fichier
    strFichier = ThisWorkbook.Path & "\1.html"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    ' Création d'un fichier
    Set objFichier = objFSO.CreateTextFile(strFichier, 2)
    ' Sélection de la plage à couvrir
    Set Plage = Range("B1:DT85")
    strLigne = ""
    ' Pour chaque ligne de la sélection
    For Ligne = 1 To Plage.Rows.Count
    ' Pour chaque colonne de la sélection
    For Colonne = 1 To Plage.Columns.Count
    ' Si dernière colonne, place code saut de ligne en html
    If (Colonne = Plage.Columns.Count) Then
    strLigne = strLigne & Cells(Ligne, Colonne).Value & "<BR>"
    Else
    ' Sinon, ajoute un espace entre chaque saisie
    strLigne = strLigne & Cells(Ligne, Colonne).Value & " "
    End If
    Next Colonne
    ' Écrire nouvelle ligne
    objFichier.WriteLine strLigne
    Next Ligne
    ' Fermeture du fichier
    objFichier.Close

    End Sub
    0
  8. Utilisateur anonyme
     
    Bonjour,

    Bien entendu, la fonction que j'ai codé ne fonctionne pas sous Calc, et je suis débutant sous Calc.
    Toutefois, je puis vous p^roposer une solution de contournement.

    Sous Calc, il vous est possible d'enregistrer au format CSV comme dit par Matio.

    // Menu / Enregistrer sous

    Choisir le type de fichier [ Format texte CSV ]

    1.) Enregistrer tous les classeurs Calc au format CSV dans un dossier spécifique :
    Exemple : [ C:\Resultats ]

    2.) Créer un sous dossier [ Scripts ]

    3.) Copier le fichier [ Extraction.vbs ] dans le dossier créé.
    [ C:\Resultats\Scripts\Extraction.vbs ]
    ( Le fichier sera contruit à partir du script ci dessous.)

    4.) Lancer l'exécution du script.

    5.) Tous les fichiers converti se retrouve dans le répertoire [ Scripts ].

    Script Extraction.vbs
    '------------------------------------------------------------------------------------------------------------------------
    ' Fichier Script Extraction.vbs
    '
    ' Création : Jeudi, le 6 Décembre 2007
    '
    ' Modifié  :
    '
    '------------------------------------------------------------------------------------------------------------------------
    '
    ' Déclaration des constantes
    '
    	Const cteLecture = 1
    	Const cteEcriture = 2
    	Const cteAjouter = 8
    '
    
    ' Déclaration des variables globales
    '
    	Dim objFSO
    	Dim strNomFichier, objFichier, objResultat
    	Dim strMessage, strLigne, strCarac, strNewLigne
    	Dim strNomDossier, objDossier, strFichier, strNewFichier
    
    	strNomDossier = WScript.ScriptFullName
    	strNomDossier= Left(strNomDossier, InStrRev(strNomDossier, "\"))
    	strNomDossier= Mid(strNomDossier,1,(Len(strNomDossier) - 1))	
    	strNomDossier= Left(strNomDossier, InStrRev(strNomDossier, "\"))
    
    	Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    	Set objDossier = objFSO.GetFolder(strNomDossier)
    
    	For Each strFichier In objDossier.Files
    		MiseEnForme strFichier, strNomDossier
    	Next	
    
    	Set objFSO = Nothing
    
    	strMessage = ""
    	strMessage = strMessage & "Fin de Traitement." & vbLf & vbLf
    	strMessage = strMessage & "Merci de votre attention." & vbLf
    	strMessage = strMessage & "Bonne journée." & vbLf & vbLf
    	strMessage = strMessage & "Lupin" & vbLf
    	strMessage = strMessage & "Technicien en électronique/Informatique"
    
    	MsgBox strMessage
    
    WScript.Quit(0)
    '------------------------------------------------------------------------------------------------------------------------
    Function MiseEnForme (strCeFichier, strLeDossier)
    
    	Dim strNomTemp
    
    
    	strNomTemp = strCeFichier.ShortName
    	strNomTemp = Mid(strNomTemp, 1, (Len(strNomTemp) - 3 ) )
    
    	strNewFichier = WScript.ScriptFullName
    	strNewFichier = Left(strNewFichier, InStrRev(strNewFichier, "\"))
    	strNewFichier = strNewFichier & strNomTemp & "html"
    	
    
    	Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    	Set objFichier = objFSO.OpenTextFile(strCeFichier,cteLecture)
    	Set objResultat = objFSO.CreateTextFile(strNewFichier, cteEcriture)
    	
    	objResultat.WriteLine "<html>"
    	objResultat.WriteLine "<body>"
    
    	Indice = 1
    	While Not objFichier.AtEndOfStream
    		strNewLigne = ""
    		strLigne = objFichier.ReadLine
    		For Boucle = 1 To Len(strLigne)
    			strCarac = Mid(strLigne, Boucle, 1)
    			If ( strCarac <> """" ) Then
    				strNewLigne = strNewLigne & strCarac	
    			End If
    		Next
    		strNewLigne = strNewLigne & "<br>"
    		objResultat.WriteLine strNewLigne
    	Wend
    	objFichier.Close
    	
    	objResultat.WriteLine "</body>"
    	objResultat.WriteLine "</html>"
    	objResultat.Close
    
    	Set objResultat = Nothing
    	Set objFichier = Nothing
    	Set objFSO = Nothing
    
    End Function
    '------------------------------------------------------------------------------------------------------------------------
    


    Lupin
    0