Betrifft: ID's aus Accessabfrage prüfen
von: Frederic
Sub ScannenID()
Dim Dokumentenpfad_Visual As String
Dim Sheet As Worksheet
Dim ValidMeldeposition As Object
Dim wb As Excel.Workbook
Set objExcel = New Excel.Application
Set wb = objExcel.Workbooks.Open("C:\Users\fsommer\Desktop\FINREP Navigator DPM 2.8\Annotated _
Table Layout 280-FINREP 2.8.xlsx", True)
objExcel.Visible = False
Set db = CurrentDb
Set rs = db.OpenRecordset("Select DataPointVID from My_ValidReport", dbOpenSnapshot)
Do Until rs.EOF = True
For Each Sheet In ActiveWorkbook.Worksheets
With Sheet.UsedRange
Set ValidMeldeposition = .Cells.Find(What:=rs!DataPointVID)
ValidMeldeposition.Interior.ColorIndex = 43
End With
Set ValidMeldeposition = Nothing
Next
rs.MoveNext
Loop
End Sub
Do Until rs.EOF = True
For Each Sheet In ActiveWorkbook.Worksheets
With Sheet.UsedRange
Set ValidMeldeposition = .Cells.Find(What:=rs!DataPointVID)
If ValidMeldeposition = True Then
Cells.Interior.ColorIndex = 43
End If
End With
Set ValidMeldeposition = Nothing
Next
rs.MoveNext
Loop
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1712983.html
Geschrieben am: 13.09.2019 17:45:00
Hi Frederic
Du verwendest den Begriff Sheet als Variable. Sheet ist aber auch ein Schlüsselwort in VBA.
Womöglich reicht es den Namen der Variable zu ändern. Ansonsten Frage bitte wieder als offen markieren.
cu
Chris
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1712997.html
For Each Sheet In ActiveWorkbook.Worksheets
With Sheet.UsedRange
Set ValidMeldeposition = .Cells.Find(What:=rs!DataPointVID)
If Not (ValidMeldeposition Is Nothing) Then
ValidMeldeposition.Interior.ColorIndex = 43
End If
End With
Next Sheet
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713241.html
Sub ScannenID()
Dim Dokumentenpfad_Visual As String
Dim ws As Worksheet
Dim ValidMeldeposition As Object
Dim wb As Excel.Workbook
Set objExcel = New Excel.Application
Set wb = objExcel.Workbooks.Open("C:\Users\fsommer\Desktop\FINREP Navigator DPM 2.8\Annotated _
Table Layout 280-FINREP 2.8.xlsx", True)
objExcel.Visible = False
Set db = CurrentDb
Set rs = db.OpenRecordset("Select DataPointVID from My_ValidReport", dbOpenSnapshot)
Do Until rs.EOF = True
For Each ws In ActiveWorkbook.Worksheets
With ws.UsedRange
Set ValidMeldeposition = .Cells.Find(What:=rs!DataPointVID)
If Not (ValidMeldeposition Is Nothing) Then
ValidMeldeposition.Interior.ColorIndex = 43
End If
End With
Next ws
Loop
doch wenn ich den ausführe kommt das runde Ladezeichen und ich kann nichts mehr anklicken und muss die anwendung schließen.. öffne ich dann wieder Access ist der Code auch nicht gespeichert..
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713244.html
Sub ScannenID()
Dim Dokumentenpfad_Visual As String
Dim ws As Worksheet
Dim ValidMeldeposition As Object
Dim wb As Excel.Workbook
Set objExcel = New Excel.Application
Set wb = objExcel.Workbooks.Open("C:\Users\fsommer\Desktop\FINREP Navigator DPM 2.8\Annotated _
_
Table Layout 280-FINREP 2.8.xlsx", True)
objExcel.Visible = False
Set db = CurrentDb
Set rs = db.OpenRecordset("Select DataPointVID from My_ValidReport", dbOpenSnapshot)
Do Until rs.EOF = True
For Each ws In ActiveWorkbook.Worksheets
With ws.UsedRange
Set ValidMeldeposition = .Cells.Find(What:=rs!DataPointVID)
If Not (ValidMeldeposition Is Nothing) Then
ValidMeldeposition.Interior.ColorIndex = 43
End If
End With
Next ws
Loop
doch wenn ich den ausführe kommt das runde Ladezeichen und ich kann nichts mehr anklicken und muss die anwendung schließen.. öffne ich dann wieder Access ist der Code auch nicht gespeichert..
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713256.html
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713267.html
Sub ScannenID()
Dim Dokumentenpfad_Visual As String
Dim ws As Worksheet
Dim ValidMeldeposition As Object
Dim wb As Excel.Workbook
Set objExcel = New Excel.Application
Set wb = objExcel.Workbooks.Open("C:\Users\fsommer\Desktop\FINREP Navigator DPM 2.8\Annotated _
Table Layout 280-FINREP 2.9.xlsx", True)
objExcel.Visible = False
Set db = CurrentDb
Set rs = db.OpenRecordset("Select DataPointVID from My_ValidReport", dbOpenSnapshot)
Do Until rs.EOF = True
For Each ws In wb.Worksheets
With ws.UsedRange
Set ValidMeldeposition = .Cells.Find(What:=rs!DataPointVID)
If Not (ValidMeldeposition Is Nothing) Then
ValidMeldeposition.Interior.ColorIndex = 43
End If
End With
Next ws
Loop
hab bei Aktive.Workbook jetzt durch wb ersetzt, da ich es ja vorher schon geöffnet habe
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713268.html
Geschrieben am: 16.09.2019 10:51:12
Hallo
Dir fehlt ein "rs.MoveNext"! Du hast einen Loop um dein Recordset abzuarbeiten, liest aber nicht das nächste Record ein, somit arbeitest Du das erste Record in einer Endlosschleife ab.
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713272.html
Sub ScannenID()
Dim Dokumentenpfad_Visual As String
Dim ws As Worksheet
Dim ValidMeldeposition As Object
Dim wb As Excel.Workbook
Set objExcel = New Excel.Application
Set wb = objExcel.Workbooks.Open("C:\Users\fsommer\Desktop\FINREP Navigator DPM 2.8\ _
Annotated Table Layout 280-FINREP 2.9.xlsx", True)
objExcel.Visible = False
Set db = CurrentDb
Set rs = db.OpenRecordset("Select DataPointVID from My_ValidReport", dbOpenSnapshot)
Do Until rs.EOF = True
For Each ws In wb.Worksheets
With ws.UsedRange
Set ValidMeldeposition = .Cells.Find(What:=rs!DataPointVID)
If Not (ValidMeldeposition Is Nothing) Then
ValidMeldeposition.Interior.ColorIndex = 43
End If
End With
Next
rs.MoveNext
Loop
End Sub
funzt nicht.. bin echt am verzeifeln.. muss doch gehen.. ist doch nur nach Nummern aus Accessabfrage in Excelsheets immer suchen.. oder man packt die nummern in ein Array aber selbst das hat nicht geklappt.. der Array war irgendwie leer..
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713308.html
Sub ScannenID()
Dim db As Database, rs As Recordset
Dim objExcel As Object, wb As Object, ws As Object, ValidMeldeposition As Object
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
Set wb = objExcel.Workbooks.Open("C:\Pfad\Mappe.xlsx", True)
Set db = CurrentDb
Set rs = db.OpenRecordset("Select DataPointVID from My_ValidReport", dbOpenSnapshot)
Do Until rs.EOF = True
For Each ws In wb.Worksheets
Set ValidMeldeposition = ws.UsedRange.Cells.Find(What:=rs!DataPointVID)
If Not (ValidMeldeposition Is Nothing) Then ValidMeldeposition.Interior.ColorIndex = 43
Next ws
rs.MoveNext
Loop
End Sub
cu
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713328.html
Geschrieben am: 16.09.2019 15:18:53
also hab es jetzt auch mal mit einer Mappe getestet, in der ein paar ID's untereinander stehen, die eig alle grün sein müssten.. aber auch bleibt alles unverändert...
ich starte das Makro ja aus Access ;)
bzgl. Find weiß ich wirklich 0 was du damit meinst? ist das noch wichtig?
Beste Grüße
Frederic
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713334.html
Geschrieben am: 16.09.2019 15:33:46
ah sry stimmt.. der öffnet die ... gar nicht gesehen.. danke :) weißt du grade wie man schnell schreiben kann, dass der beim duplikaten den zweiten dritten usw auch markiert? auf dem zweiten Sheet ist kein problem aber kann sein das zwei auf einem vorkommen
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713339.html
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713340.html
Betrifft: AW: ID's aus Accessabfrage prüfen
von: 1713343.html
Geschrieben am: 16.09.2019 16:26:00
Hi Frederic
Ja, der Hinweis zu Find ist wichtig. Nochmal (aller guter Dinge sind 3):
https://www.herber.de/mailing/vb/html/xlmthfind.htm
da steht dann auch wie es mit FindNext weiter geht.
Die Performance kannst du vermutlich nur verbessern, wenn du die Datenmenge resp. den zu durchsuchenden Bereich reduzierst.
cu
Chris