• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

html veya txt den access veya excele veri almak

Katılım
20 Aralık 2011
Mesajlar
17
Excel Vers. ve Dili
office 2007 Professional
arkadaslar merhaba

çaliştigim yerdeki envanter kaydini yani bilgisayar bileşen listesini bazı programlar ile aldim bunlari txt ve html olarak aldim kaydettim.Ancak benim istedigim o txt nin yada html nin içindeki bilgileri excele veya access de olusturacagim dataya tek tek girmekten ziyade daha pratik bir yol ile cekip gömebilmek.

Örnek :

Html dosyasinin içerigi : Anakart modeli , Ram , Cpu vbgibi
Bunu Excel de olusturdugum tabloda ayni şekilde ki yerlere eşleştirmek istiyorum.

Html Nin yada txt nin içinde yazan

Anakart : gigbyte
ram 2 gb
şeklindeki satırları
Excel de olusturdugum : Anakart Ram Cpu adlari altinda denk getirmek.umarim anlatabilmişimdir...



Html içerigi : ( alt alta getiriyor )

System Summary
Processor
Processor Intel Core 2 Duo E4600 2400 MHz
CPU Clock 2400.0 MHz (12.0 x 200.0 MHz QDR)
Level 1 Cache 2 x 32+32 kB (data+instr.)
Level 2 Cache 1 x 2048 kB
Motherboard
System Name Gigabyte Technology Co., Ltd. P35-S3G
Motherboard Vendor Gigabyte Technology Co., Ltd.
Board Model Gigabyte Technology Co., Ltd. P35-S3G
BIOS Version Award Modular BIOS v6.00PG
Chipset Name Intel G33/G31/P35 Express (Bearlake)
Chipset Vendor Intel Corporation
Chipset P35/G33 (Bearlake) Processor to I/O Controller
Southbridge Vendor Intel Corporation
Southbridge 82801IB (ICH9) LPC Interface Controller
DMI/SMBIOS Version 2.4
Memory
Memory Size 2095532 kB (2046.42 MB)
System Memory 2048 MB
Memory Module 2048MB DDR2-800 SDRAM (Kingston)
Storage
HDD Model ST3160815AS
HDD Size 152626 MB (149.05 GB)
CD/DVD Model TSSTcorp CDDVDW SH-S223F
CD/DVD Speed 40x (Write: 48x)


Ayni sekilde text dosyasida bu sekilde getirmekte...
Bunlari tek tek excele el ile girmektense nasil bir yol izlemem mümkün ? access veya excel de....umarim sorunumu dile getirebildim...:S
 
Merhaba;

Bu haliyle "text" e benziyor. Bir html ise "tag" ları olmalı. İçeriği olduğu haliyle eklemeniz mümkün mü?
 
html dosyasnin kod duzeni bu sekilde görunuyor.dosyalari upload edebilirim dilerseniz.hem tx yi hem html formatlarini.



tr><a name="System Summary"></a></tr>
<tr><td colspan=5><br></td></tr>
<tr><td colspan=5 CLASS=module>System Summary</td></tr>
<tr><td colspan=5><hr></td></tr>
<tr><td colspan=2></td><td colspan=3 CLASS=header>Processor </td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Processor</td><td CLASS=value>Intel Core 2 Duo E4600 2400 MHz</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>CPU Clock</td><td CLASS=value>2400.0 MHz (12.0 x 200.0 MHz QDR)</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Level 1 Cache</td><td CLASS=value>2 x 32+32 kB (data+instr.)</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Level 2 Cache</td><td CLASS=value>1 x 2048 kB</td></tr>
<tr><td colspan=2></td><td colspan=3 CLASS=header>Motherboard</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>System Name</td><td CLASS=value>Gigabyte Technology Co., Ltd. P35-S3G</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Motherboard Vendor</td><td CLASS=value>Gigabyte Technology Co., Ltd.</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Board Model</td><td CLASS=value>Gigabyte Technology Co., Ltd. P35-S3G</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>BIOS Version</td><td CLASS=value>Award Modular BIOS v6.00PG</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Chipset Name</td><td CLASS=value>Intel G33/G31/P35 Express (Bearlake)</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Chipset Vendor</td><td CLASS=value>Intel Corporation</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Chipset</td><td CLASS=value>P35/G33 (Bearlake) Processor to I/O Controller</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Southbridge Vendor</td><td CLASS=value>Intel Corporation</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Southbridge</td><td CLASS=value>82801IB (ICH9) LPC Interface Controller</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>DMI/SMBIOS Version</td><td CLASS=value>2.4</td></tr>
<tr><td colspan=2></td><td colspan=3 CLASS=header>Memory</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Memory Size</td><td CLASS=value>2095532 kB (2046.42 MB)</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>System Memory</td><td CLASS=value>2048 MB</td></tr>
<tr><td colspan=3></td><td colspan=1 CLASS=name>Memory Module</td><td CLASS=value>2048MB DDR2-800 SDRAM (Kingston)</td></tr>
<tr><td colspan=2></td><td colspan=3 CLASS=header>Storage</td></tr>
 
dosyayı upload etttim ancak htm yi kabul etmiyor tct fle gonderdim.
 
Kodu eksik kopyalamış olabilir misiniz? "table" tag'ı görünmüyor. Ben elle ekleyerek veri alacak duruma getirdim. Ancak html ve text dosyanızın yapısını görmek gerek.

"Cevap Yaz" butonuna basarak dosyalarınız zip formatında buraya ekleyebilirsiniz.
 
dosyalari ekledim.hem txt yi hem htm yi....içlerindeki belirli seyleri cekmek istiyorum yani pc lerde bilinen standart bileşenleri dosyalardaki raporlar cok fazla ayrıntılıdır.
 

Ekli dosyalar

Bütün secereyi dökmüş. :)
İlgilendiğiniz tabloyu çekecek şekilde vba düzenleyip eklerim birazdan.
 
aynene :D ben standart bileşenleri almak istiyorum şimdiden elinize saglik çok sagolun Allah sizden razı olsun ugrasiyorsunuz gercekten cok ama cok tesekkur edeirm. :)
 
Aşağıdaki kodu test edin.

Kod:
Sub local_htm()
On Error Resume Next

Const a = "<html><table>"
Const b = "</table></html>"
[B]Const f = "C:\wsist1d016xx.htm"[/B] [COLOR=DarkGreen]'Buradaki gerçek yolu yazın[/COLOR]

    Set s = CreateObject("Scripting.FileSystemObject").OpenTextFile(f)
        
    txt = s.ReadAll
    
    s.Close
    
    bas = InStr(1, txt, "<tr><a name=""System Summary"">", vbTextCompare)
    
    son = InStr(bas, txt, "CLASS=header>Storage</td></tr>", vbTextCompare)
    
    fark = Mid(txt, bas, (son - bas) + 30)
    
    n = Environ("userprofile") & "\desktop\tmp.htm"
    
    Open n For Output As #1
        Print #1, a & fark & b
    Close #1
    
    Set IE = CreateObject("InternetExplorer.Application")
    
    IE.Navigate n
    
    Do Until IE.ReadyState = 4: DoEvents: Loop
    Do While IE.Busy: DoEvents: Loop
 
    With IE.Document.GetElementsByTagName("table")(0)

        For i = 4 To .Rows.Length - 1
            Cells(i - 3, "a") = .Rows(i).Cells(1).innertext
            Cells(i - 3, "b") = .Rows(i).Cells(2).innertext
        Next

    End With

    IE.Quit
    
    Kill n
End Sub
 
elinize saglik çok güzel ancak bir kaç sorunum daha var benim istedigim şey şu şekilde

Excelde A1 Anakart B1 Cpu C1 Ram D1 Vga şeklinde.Şimdi bu htm file içinden de cekmek istediklerimi diyelim ki anakart ı A2 yazacak cpu yu b2 ye alt alta devam edecek.htm içinden ne cagiriyor isem alt alta o satirlara yazmasini istiyorum.sizin yaptigniz macro da alt alta getiriyor

yani bu şekilde geliyor.Emeğinize saglik gercekten cok ugrastirdim sizi.bunun içinde yardimci olursaniz minnettar olurum.


Processor
Processor Intel Core 2 Duo E4500 2200 MHz
CPU Clock 2200.1 MHz (11.0 x 200.0 MHz QDR)
Level 1 Cache 2 x 32+32 kB (data+instr.)
Level 2 Cache 1 x 2048 kB
Motherboard
System Name Gigabyte Technology Co., Ltd. P31-DS3L
Motherboard Vendor Gigabyte Technology Co., Ltd.
Board Model Gigabyte Technology Co., Ltd. P31-DS3L
BIOS Version Award Modular BIOS v6.00PG
Chipset Name Intel G33/G31/P35 Express (Bearlake)
Chipset Vendor Intel Corporation
Chipset P35/G33 (Bearlake) Processor to I/O Controller
Southbridge Vendor Intel Corporation
Southbridge 82801GB/GR (ICH7 Family) LPC Interface Controller
DMI/SMBIOS Version 2,4
Memory
Memory Size 2095532 kB (2046.42 MB)
System Memory 2048 MB
Memory Module 1024MB DDR2-666 SDRAM (Kingston)
Memory Module 1024MB DDR2-666 SDRAM (Samsung)
Storage
 
Şirket Adı Soyadı workstation Ürün Modeli Seri No: CPU Cache BIOS Motherboard

A frmasi Ali mehmet Oem P4 329874293ty 2.6


vs gibii....
 
Kodun şu kısmını aşağıdaki ile değiştirirseniz sanırım olacak.

Kod:
With IE.Document.GetElementsByTagName("table")(0)
            Cells(2, "a") = .Rows(12).Cells(2).innertext 'anakart
            Cells(2, "b") = .Rows(5).Cells(2).innertext 'cpu
            Cells(2, "c") = .Rows(23).Cells(2).innertext 'ram
            Cells(2, "d") = .Rows(16).Cells(2).innertext 'vga
End With
Olmazsa ".Rows(??)" olan kısmın sayılarını değiştirin.
 
Son düzenleme:
abi sen süpersin sana ne kadar dua etsem az kalir tam istedigim gibi.eline emeğine sağlik rabbim razı olsun senden.

ancak son bir soru daha soracagim sana.umarim son olur kurtulursun benden :)


şimdi malum benim istedigim bilgileri çektirmem gerek o yuzden yazdigin kod da

bu satırlardami değişiklik yapacagim ?

bas = InStr(1, txt, "<tr><a name=""System Summary"">", vbTextCompare)

son = InStr(bas, txt, "CLASS=header>Storage</td></tr>", vbTextCompare)


yani şöyle açıklıym

dosyalari gördun içi cok kalabalik.burada benim isediklerim belirli şeyler ama bu kadar az bişi degil.Mesela printer listesinide alicam.o yzuden bu kodlardami deişiklik yapcm.
 
bi dk...aha buldum sayende ögrenicem bu işi :D

With IE.Document.GetElementsByTagName("table")(0)
Cells(1, "a") = .Rows(12).Cells(2).innertext 'anakart
Cells(1, "b") = .Rows(5).Cells(2).innertext 'cpu
Cells(1, "c") = .Rows(23).Cells(2).innertext 'ram
Cells(1, "d") = .Rows(16).Cells(2).innertext 'vga
End With


Bu kodla deişiklik yapicam hangi satirlari gelmesini istiyorsam rows a o satir sayilarini belirticem dogrumu anladim ?
 
diyelim gönderdigim dosya içinde örnek veriyorum : Vga driver 637.row da

Cells(1, "y") = .Rows(637).Cells(2).innertext 'vga driver


şeklinde yapmam gerekiyor degil mi ?

birde ortalama 100 rapor var her raporu caliştirmadan önce kod icinde pathi değiştirmem mi gerekiyor ? toplu halde basamaz degilmi yada path sorma vs gibi birsey olmaz mi ?
 
Cell alt alta otomatik oalrak nasil artiricaz sayilarini her bi raporda 2 ye basacak sanirim ? bu kodda ? alt alta dizilsin diye cell lerde ki 2 yi ne yapmak lazim ?
 
Rows(16).Cells(2).i burdaki 2 kalirsa her raporu 2 ye basacak sanirim.
 
Geri
Üst