FireNeck
Threadstarter
- Dabei seit
- 16.09.2009
- Beiträge
- 4
Hallo an alle,
ich bin neu hier und hab gleich mal eine Frage (wie auch sonst...)
Also es geht in meinem Problem in VBA Excel um folgendes:
Ich habe ein Tabelle mit dem Sheet "Telefonate" (aktiv, geöffnet). In dieses Sheet werden über ein UserForm Daten eingegeben. Zur Vervollständigung der Daten soll eine Projektnummer eingefügt werden. Diese Projektnummer befindet sich in einer anderen (geschlossenen) Excel-Datei im Sheet "Projekte". Dort interessieren eigentlich nur der Bereich "A1:B500", ist aber nicht entscheidend.
Dank der Suche bin ich mit dem Code von AlienJoker bzw. Peter Schirmer schonmal soweit:
Sub Auslesen()
Dim SuchWert As String
Dim PNR As String
Dim b As Integer
For b = 6 To 5000
If Worksheets("Telefonate").Cells(b, 4) = Empty Then
Exit For
Else
If Worksheets("Telefonate").Cells(b, 3) = Empty Then
SuchWert = Worksheets("Telefonate").Cells(b, 4)
Dim objExcel As New Excel.Application
Dim objSheet As Object
objExcel.Workbooks.Open "C:\Projekte.xls"
Set objSheet = objExcel.Sheets("Projekte")
Application.ScreenUpdating = False
Cells.Find(What:=SuchWert, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
ActiveCell.Offset(0, -1).Activate
PNR = ActiveCell.Value
objExcel.ActiveWorkbook.Close SaveChanges:=False
objExcel.Quit
Application.ScreenUpdating = True
Set objExcel = Nothing
Set objSheet = Nothing
PNR = Worksheets("Telefonate").Cells(b, 3)
End If
End If
Next b
End Sub
Soweit, so gut. Das Problem im Moment ist noch, dass er die Suche der Indizierung auf das Sheet "Telefonate" anwendet, statt auf das ObjektSheet "Projekte".
Da immer nur ein Datensatz eigegeben wird, könnte ich es wahrscheinlich auch über einfache .Activate-Befehle machen und hin und her springen, oder das ganze per Hand suchen und eintragen, aber da ich bisher nur einfachere Sachen über VBA gemacht habe und dazu lernen möchte, gefällt mir das mit den Objekten ganz gut, zumal ich von denen keine Ahnung habe und auch noch nie wirklich damit was gemacht habe... "Lerning by Doing" also.
Vielen Dank für die Hilfe !
bis dann
FireNeck
ich bin neu hier und hab gleich mal eine Frage (wie auch sonst...)
Also es geht in meinem Problem in VBA Excel um folgendes:
Ich habe ein Tabelle mit dem Sheet "Telefonate" (aktiv, geöffnet). In dieses Sheet werden über ein UserForm Daten eingegeben. Zur Vervollständigung der Daten soll eine Projektnummer eingefügt werden. Diese Projektnummer befindet sich in einer anderen (geschlossenen) Excel-Datei im Sheet "Projekte". Dort interessieren eigentlich nur der Bereich "A1:B500", ist aber nicht entscheidend.
Dank der Suche bin ich mit dem Code von AlienJoker bzw. Peter Schirmer schonmal soweit:
Sub Auslesen()
Dim SuchWert As String
Dim PNR As String
Dim b As Integer
For b = 6 To 5000
If Worksheets("Telefonate").Cells(b, 4) = Empty Then
Exit For
Else
If Worksheets("Telefonate").Cells(b, 3) = Empty Then
SuchWert = Worksheets("Telefonate").Cells(b, 4)
Dim objExcel As New Excel.Application
Dim objSheet As Object
objExcel.Workbooks.Open "C:\Projekte.xls"
Set objSheet = objExcel.Sheets("Projekte")
Application.ScreenUpdating = False
Cells.Find(What:=SuchWert, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
ActiveCell.Offset(0, -1).Activate
PNR = ActiveCell.Value
objExcel.ActiveWorkbook.Close SaveChanges:=False
objExcel.Quit
Application.ScreenUpdating = True
Set objExcel = Nothing
Set objSheet = Nothing
PNR = Worksheets("Telefonate").Cells(b, 3)
End If
End If
Next b
End Sub
Soweit, so gut. Das Problem im Moment ist noch, dass er die Suche der Indizierung auf das Sheet "Telefonate" anwendet, statt auf das ObjektSheet "Projekte".
Da immer nur ein Datensatz eigegeben wird, könnte ich es wahrscheinlich auch über einfache .Activate-Befehle machen und hin und her springen, oder das ganze per Hand suchen und eintragen, aber da ich bisher nur einfachere Sachen über VBA gemacht habe und dazu lernen möchte, gefällt mir das mit den Objekten ganz gut, zumal ich von denen keine Ahnung habe und auch noch nie wirklich damit was gemacht habe... "Lerning by Doing" also.
Vielen Dank für die Hilfe !
bis dann
FireNeck