Dim var1 As String, x As String Dim vari As Integer, colonne As Integer, ligne As Integer Open "C:\Documents and Settings\Stagiaire\Bureau\Prog_robot.txt" For Input As #1 While Not EOF(1) Input #1, var1 For colonne = 2 To 100 Step 1 ligne = 2 If Cells(ligne, colonne) = "" Then If InStr(1, var1, "PALETTE FLACONS") <> 0 Then Worksheets("Feuil1").Cells(ligne, colonne).Value = Mid(var1, 2, 17) End If Else: Cells(ligne, colonne + 1) = Mid(var1, 2, 17) Worksheets("Feuil1").Cells(ligne, colonne).Value = Mid(var1, 2, 17) End If Next colonne
Ouvrir un fichier texte Faire jusqu'à la fin du fichier : Lire la première donnée (si présence de ; ou , , ne pas prendre toute la ligne (utiliser LINE INPUT pour éviter ce genre de comportement) POUR De la colonne 2 à la colonne 100 Ligne=2 Si la cellule (Ligne,Colonne) est vide ALORS SI La donnée lue contient "PALETTE FLACONS" ALORS Feuille("Feuille1").Cellule(ligne,colonne)=Partie de la donnée lue FIN SI SINON Cellule(ligne,colonne+1)=Partie de la donnée lue Feuille("Feuille1").Cellule(ligne,colonne)=Partie de la donnée lue FIN SI FIN POUR Fin FAIRE
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim lColonne As Long lColonne=0 Dim lLigne as String Dim lDate as Date Dim lTab1() as String Dim lTab2() as String Dim i As Long Open "MonFichier" FOR Input As #1 Do Until Eof(1) Line Input #1,lLigne lDate=Mid$(lLigne,2,20) lLigne=Mid$(lLigne,28)' On ne garde que la donnée utile If Instr(lLigne," MESURE PLATEAU")=1 Then 'Nouvelle mesure lColonne=lColonne+1 'Ajout du numéro de mesure AddData lColonne,"Mesure",trim$(Split(lLigne,":")(1) 'Ajout de la date AddData lColonne,"Date/Heure",lDate Elseif Instr(lLigne,"=")<>0 Then 'Ligne de données lTab1=Split(lLigne,";") For i=lBound(lTab1) To uBound(lTab1) lTab2=Split(Trim$(lTab1(i)),"=") AddData lColonne,lTab2(0),lTab2(1) Next End if Loop Close #1 Public Sub AddData(ByVal pColonne as Long,ByVal pKey as String, ByVal pValue as String) Dim lLigne as long lLigne=1 Do while Cells(lLigne,1).Value<>"" And Cells(lLigne,1).Value<>pKey lLigne=lLigne+1 Loop 'Si ligne non trouvée, on la créé If Cells(lLigne,1).Value="" Then Cells(lLigne,1).Value=pKey Cells(lLigne,1+pColonne).Value=pValue End Sub