Anzeige
Archiv - Navigation
1900to1904
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler bei Code

Fehler bei Code
05.10.2022 19:56:18
Henry
Hallo,
ich habe folgenden Code um aus einer Quelldatei aus der letzten beschriebenen Spalte aus der Zeile 4 einen Wert auszulesen.
Das Ganze soll bei geschlossener Quelldatei passieren.
Leider bekomme ich einen Fehler.
Der Code funktioniert nicht.
Es schließt sich lediglich die Makro-Datei.
Was mache ich falsch?
Sub Zelle_auslesen()
Dim pfad As String, datei As String, blatt As String, zelle As String
spalte = Range("D4").End(xlToRight).Column
pfad = "C:\Users\testuser\Desktop"
datei = "test.xlsx"
blatt = "Tabelle1"
zelle = Cells(4, spalte)
Range("A1") = GetValue(pfad, datei, blatt, zelle)
End Sub

Private Function GetValue(pfad, datei, blatt, zelle)
Dim arg As String
If Right(pfad, 1)  "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "datei Not Found"
Exit Function
End If
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei Code
05.10.2022 20:05:31
onur
Was genau steht denn in Cells(4, spalte) ?
AW: Fehler bei Code
05.10.2022 20:07:26
Henry
Da steht "test1"
AW: Fehler bei Code
05.10.2022 20:10:17
onur
?
Range("A1") = GetValue(pfad, datei, blatt, zelle)
Du willst also die Zelle mit der Adresse "test1" auslesen?
AW: Fehler bei Code
05.10.2022 20:11:54
Henry
Okay verstehe.
Wie müsste ich dass abändern, damit ich den Wert aus der letzten beschrieben Spalte in Zeile 4 auslese?
AW: Fehler bei Code
05.10.2022 20:14:14
onur
Cells(4, spalte).Address
sollte reichen.
AW: Fehler bei Code
05.10.2022 20:24:17
Henry
Ich habe den Code jetzt wie folgt abgeändert.
Im Ergebnis wird in Zelle A1 eine "0" geschrieben und leider nicht "test1".
Sub Zelle_auslesen()
Dim pfad As String, datei As String, blatt As String, bezug As String
Dim spalte As Variant
spalte = Range("D4").End(xlToRight).Column
pfad = "C:\Users\testuser\Desktop"
datei = "test.xlsx"
blatt = "Tabelle1"
bezug = Cells(4, spalte).Address
ActiveCell.Value = GetValue(pfad, datei, blatt, bezug)
End Sub

Private Function GetValue(pfad, datei, blatt, bezug)
Dim arg As String
If Right(pfad, 1)  "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "datei Not Found"
Exit Function
End If
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(bezug).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function

Anzeige
AW: Fehler bei Code
05.10.2022 21:20:03
onur
Warum so kompliziert?
Schreibe DAS in irgendeine Zelle (z.B F77) in der Quelldatei und lese mittels Formel einfach die Zelle F77 der Quelldatei aus. Dann brauchst du nicht mal VBA.

=INDIREKT("Z4s"&MAX(VERGLEICH(;Z4;-1);VERGLEICH("";Z4;-1));FALSCH)
Aber zuvor unter Optionen auf Z1S1-Adressierung umschalten!
AW: Fehler bei Code
05.10.2022 23:41:06
snb

Function F_snb(pfad, datei, blatt, zelle)
With GetObject(pfad & IIf(Dir(pfad & datei) = "", "\", "") & datei)
F_snb = .Sheets(blatt).Range(zelle)
.Close
End With
End Function

Anzeige
AW: Fehler bei Code
06.10.2022 12:34:20
Henry
Hallo,
leider ist mir nicht klar wie ich die Funktion einbauen soll.
Mein Code sieht bislang wie folgt aus.
Als Ergebnis erhalte ich in Zelle E2 immer eine "0".
In der letzten beschriebenen Spalte in Zeile 1 steht jedoch "test1".
Ich finde leider den Fehler nicht und benötige noch einmal eure Hilfe.
Option Explicit

Private Function GetValueFromClosedWorkbook(path, file, sheet, ref)
Dim arg As String
If Right(path, 1)  "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValueFromClosedWorkbook = "File Not Found"
Exit Function
End If
arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)
GetValueFromClosedWorkbook = ExecuteExcel4Macro(arg)
End Function
Sub test()
Dim p As String, f As String
Dim s As String, a As String
Dim spalte As Long
spalte = ThisWorkbook.Sheets(1).Range("A1").End(xlToRight).Column
p = ThisWorkbook.path
f = "test.xlsx"
s = "Tabelle1"
a = Cells(1, spalte).Address
ActiveSheet.Range("E2") = GetValueFromClosedWorkbook(p, f, s, a)
End Sub
Anzeige
AW: Fehler bei Code
06.10.2022 12:36:32
onur
ICH habe dir doch eine Lösung ohne VBA gepostet. Zu kompliziert für dich?
AW: Fehler bei Code
06.10.2022 12:38:05
Henry
Ich brauche glaube ich eine Lösung in VBA.
Hintergrund ist, dass sich die Spalten verschieben und die letzten beschriebene Spalte wöchentlich eine Spalte nach rechts wandert.
AW: Fehler bei Code
06.10.2022 12:39:23
onur
Na und? Das ist meiner Formel piepsegal.
AW: Fehler bei Code
06.10.2022 12:43:22
Henry
Okay.
Ich versuche es mal.
Allerdings ist die Tabelle so aufgebaut, dass zunächst 3 Spalten befüllt sind, dann eine leere Spalte kommt und dann wieder eine befüllte.
Ich benötige den Wert aus der 3. Spalte.
Daher dachte ich man müsste hier mit xlTRight arbeiten.
Eine Lösung in VBA ist nicht möglich?
Anzeige
AW: Fehler bei Code
06.10.2022 12:45:14
onur
Geht es noch? DU hast doch geschrieben, du brauchst die LETZTE belegte Spalte. Jetzt plötzlich die Dritte?
AW: Fehler bei Code
06.10.2022 12:47:20
Henry
Die dritte Spalte wandert wöchentlich immer eine Spalte weiter.
Erst ist es die dritte Spalte, dann die vierte Spalte, dann die fünfte Spalte.
Das was sich nicht ändert ist, dass zwischen dieser Spalte und der nächsten beschriebenen Spalte eine LeerSpalte ist.
Ich brauche immer den Wert aus der Spalte vor der LeerSpalte.
AW: Fehler bei Code
06.10.2022 12:50:21
onur
Ich bin raus, deine ursprüngliche Frage habe ich beantwortet.
AW: Fehler bei Code
06.10.2022 12:57:48
onur
=INDIREKT("Z4s"&MAX(VERGLEICH(;Z4;-1);VERGLEICH("";Z4;-1)-2);Falsch)
AW: Fehler bei Code
06.10.2022 13:27:36
Henry
Ich habe die Formel mal in H1 eingefügt, um den Wert aus der dritten beschriebenen Spalte in Zeile 1 herauszubekommen.
Leider erhalte ich ein #NV.
Anzeige
AW: Fehler bei Code
06.10.2022 15:13:01
onur
Poste doch mal diese Datei.
AW: Fehler bei Code
06.10.2022 12:42:34
onur
Bei „Excel gut“ solltest du eigentlich wissen, dass die Formel die letzte beschriebene Spalte in Zeile 4 ermittelt und den Wert davon ausspuckt.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige