Data uit Excel inlezen en vergelijken met ander Excel bestand

Status
Niet open voor verdere reacties.

Luna08

Gebruiker
Lid geworden
14 apr 2009
Berichten
28
Hoi,

Ik ben redelijk nieuw in vba maar ben toch al aardig aan het stoeien geweest.
Wat ik graag wil is een macro die een excel bestand inleest. Uit dit bestand moeten dan bepaalde kolommen gekopieerd worden (dit zijn altijd vaste kolommen (A, C, D, E)).
Als deze kolommen ingelezen zijn moet 1 kolom vergeleken worden met een ander excel document.

Komt de inhoud van de cel overeen met de inhoud van een cel in kolom A van het andere document dan moet de inhoud van B(cel) gekopieerd worden naar F(cel) van het ingelezen bestand.

Voor het laatste stukje heb ik het volgende al als proef:

Code:
Sub Element_bepalen()
    Dim i                   As Integer
    
    Range("A1").Select
    
    i = 2
    Do Until Cells(i, 1).Value = ""
        Cells(i, 2).Value = Element_van_Artikel(Cells(i, 1).Value)
        i = i + 1
    Loop

End Sub


Private Function Element_van_Artikel(Artikelnr) As String
    Const File As String = "C:\Artikelbestand.xls"
    
    Dim conn As ADODB.Connection
    Dim rs   As ADODB.Recordset
    Set conn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    conn.Open "Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=" & File
    selstr = "SELECT [Element] " & _
                "FROM [$Artikelen] " & _
                "WHERE [Artikelnr] = '" & Artikelnr & "' "
    rs.Open selstr, conn
    If rs.EOF Then
        Element_van_Artikel = ""
    Else
        Element_van_Artikel = rs("Element")
    End If
    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing

End Function

Kunnen jullie me zeggen of ik hiermee op de goede weg ben, of het simpeler kan en me op weg helpen met het 1ste gedeelte.
Alvast bedankt voor alle hulp.
 
HHS (hou het simpel)

Code:
with Workbooks.add "C:\bestand1.xls"
   sq=.sheets(1).usedrange
   .close false
end with

with Workbooks.open "C:\bestand2.xls"
   st=.sheets(1).usedrange
   for j=1 to ubound(st)
     if st(j,1)=sq(j,1) then .sheets(1).cells(j,6)=sq(j,2)
   next
   .save
   .close false
end with
 
Hoi,

Bedankt voor je reactie maar ik krijg deze code van jou niet aan de praat.
Wat doet de code precies?

Alvast bedankt.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan