Hallo zusammen,
ich habe bereits einen Code geschrieben mit dem ich Daten aus einer Access DB ziehe, in anderen Excellsheets zwischenspeichere und dann die benötigten Daten in das Ziel Worksheet einfüge. Jedoch passiert es ab und zu, dass ein Kollege eine weitere Spalte einfügt. Deshalb möchte ich gerne eine flexible Spaltenbeziehung implementieren. Mein Idee: Ich markiere die Spalte mit einem String und die Funktion unten gibt immer den jeweiligen Sapltenbuchstaben zurück:
Function Spalte(Bezug As String) As String
Dim Spaltenzeichen As String
Dim Bereich, Zelle As Range
Dim SpaltenNummer As Integer
Set Bereich = Range("A1:AAA6")
For Each Zelle In Bereich
If Zelle.Text Like Bezug Then
SpaltenNummer = Zelle.Column
End If
Next
Spaltenzeichen = Columns(SpaltenNummer).Address(0, 0) <--- Laufzeitfehler 1004 Anwendungs/Objektdefinierter Fehler , diese Spalte ist markiert. Spaltenzeichen = "" , wenn ich mit dem Cursor drüber gehe
Spaltenzeichen = Left(Spaltenzeichen, InStr(Spaltenzeichen, ":") - 1)
End Function
Wo die Function aufgerufen wird:
.........
If SuchErgebnis Is Nothing Then
Else
xlSheet.Range(Spalte("Hallo") & i).Value = xlSheetDev.Cells(SuchErgebnis.Row, 9).Value
If i = 6 Then
xlSheet.Range(Spalte("Hallo") & i + 1).Value = xlSheetDev.Cells(SuchErgebnis.Row, 11).Value
xlSheet.Range(Spalte("Hallo") & i + 18).Value = xlSheetDev.Cells(SuchErgebnis.Row, 10).Value
'test = xlSheetDev.Cells(SuchErgebnis.Row, 11).Value
End If
If i = 8 Then
xlSheet.Range(Spalte("Hallo") & i + 17).Value = xlSheetDev.Cells(SuchErgebnis.Row, 10).Value
End If
......... usw..
Danke im vorraus!
Gruß
Kaan
|