Mise en forme d'une base de données

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

K

Kuro_Neko

Guest
Bonjour à tous,

Dans le cadre d'un projet étudiant, je dois utiliser une base de données économiques et en faire une étude économétrique (avec tests statistiques etc..). J'ai trouvé une base de données qui me parait intéressante, mais je suis confronté à un problème : la mise en forme.

J'ai téléchargé la base de données au fichier .txt (pas d'autres options) et voilà un exemple de ce à quoi ressemble une "ligne" de données :

4.00000 43.0000 .000000 .000000 1.00000
.000000 1.00000 .000000 .000000 9.00000
.000000 5.72031

Le problème est simple : j'ai ici 12 variables dont j'aimerais voir les valeurs s'afficher en lignes et non en tableau.

En important les données dans Excel, je n'étais évidemment pas surpris de voir qu'Excel avait importé toutes ses données dans des cellules, mais pour ce qui devrait être une seule ligne de variables je me retrouve avec 3 lignes et 5 colonnes. Je n'arrive pas à mettre en forme les données correctement.

Voilà la base de données au format .txt en question : http://pages.stern.nyu.edu/~wgreene/Text/tables/Cornwell&Rupert.txt

Merci de votre aide,

Thomas.
 
Re : Mise en forme d'une base de données

Bonjour Kuro-Neko

Je suppose qu'il y a des macros pour faire ça, mais en attendant un petit bricolage pour dépanner, j'ai comme toi copié dans excel, puis utilisé le menu données/convertir
Ensuite, des formules basiques pour faire une ligne au lieu de trois, puis copie dans l'onglet d'à coté du résultat en ne sélectionnant que les lignes renseignées.
Dans le fichier joint j'ai laissé le début de l'extraction pour que tu vois ce que j'ai fait ( c'est vraiment du bricolage rien de fascinant tu verras) et j'ai placé en revanche la totalité de la base dans l'onglet Result.

Bonne journée,

mth
 

Pièces jointes

Re : Mise en forme d'une base de données

Bonjour Kuro-Neko, mth,


voici une solution par macro (ne pas oublier d'adapter le path du fichier texte).
Code:
Public Sub ImportTxt()
Dim myFso As Object, txtFile As Object
Dim pathFichierTxt As String, tmpTab() As String, i As Long, j As Long


    pathFichierTxt = "E:\aMiki\XLS\test\test.txt"
    
    Set myFso = CreateObject("Scripting.FileSystemObject")
    Set txtFile = myFso.OpenTextFile(pathFichierTxt, 1)
    
    'sauter la première ligne
    txtFile.ReadLine
    
    'boucler sur toutes les lignes restantes
    While Not txtFile.AtEndOfStream
        i = i + 1
        tmpTab = Split(NettoyerEspaces(txtFile.ReadLine), " ")
        If i Mod 3 = 1 Then
            For j = LBound(tmpTab) To UBound(tmpTab)
                Range("A" & Int(i / 3) + 1).Offset(0, j).Value = CDbl(Replace(tmpTab(j), ".", ","))
            Next j
        ElseIf i Mod 3 = 2 Then
            For j = LBound(tmpTab) To UBound(tmpTab)
                Range("A" & Int(i / 3) + 1).Offset(0, 5 + j).Value = CDbl(Replace(tmpTab(j), ".", ","))
            Next j
        Else
            For j = LBound(tmpTab) To UBound(tmpTab)
                Range("A" & Int(i / 3)).Offset(0, 10 + j).Value = CDbl(Replace(tmpTab(j), ".", ","))
            Next j
        End If
    Wend
    txtFile.Close
    Set txtFile = Nothing: Set myFso = Nothing
End Sub



'efface les multiples espaces dans une chaine de caractère
Private Function NettoyerEspaces(texte As String) As String
    While InStr(texte, "  ")
        texte = Replace(texte, "  ", " ")
    Wend
    If Right(texte, 1) = " " Then texte = Left(texte, Len(texte) - 1)
    If Left(texte, 1) = " " Then texte = Right(texte, Len(texte) - 1)
    NettoyerEspaces = texte
End Function

a+
 
Re : Mise en forme d'une base de données

Merci beaucoup à vous deux !

mromain : ta macro marche nickel c'est génial !! 😀

Merci d'avoir répondu aussi rapidement et aussi efficacement.

Bonne journée

Thomas
 
- 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
4
Affichages
309
Réponses
2
Affichages
239
Retour