Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
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

Funktion geht erst nach vorherigem goto

Funktion geht erst nach vorherigem goto
28.04.2017 22:53:55
Björn
Hallo zusammen,
ich habe ein Problem mit einer Funktion, die nur klappt wenn ich vorher das Tabellenblatt mit application.goto aufrufe.
Im Anschluss der Code - es geht um die "GetValue" Funktion; sie wird am Ende des Snippets aufgerufen.
Vielen Dank im Vorraus!
Function GetValue(Row As Integer, col As Integer)
GetValue = Cells(Row, col)
End Function

Sub Auswertung()
Dim SourceWb As Workbook
Dim TargetWb As Workbook
Dim AkWks As Worksheet
Dim Wks As Worksheet
Dim arr As Variant
Dim Suchfile As String 'Excelfile Quelle
Dim StrDatum As String
Dim Datum As Date
Dim C As Range
Dim R As Range
Dim Fund As String
Dim Zzeile As Integer
Dim Zspalte As Integer
Dim SuchBereich As Range
Dim Jahr As String
Dim Mon As String
Dim Tag As String
Dim ListArray(366, 13) As Variant
Dim Liste As Variant
Dim Ueberschr(13) As Variant
Dim ArrSpalte As Integer
Set TargetWb = ActiveWorkbook 'Ziel definieren = dieses Dokument
Set Ziel = TargetWb.Worksheets("Auswertung") 'in welches Blatt werden die Daten geschrieben?
suchfolder = TargetWb.Worksheets("Start").Range("Pfad").Value 'Ordner mit den zu Dateien
Suchfile = TargetWb.Worksheets("Start").Range("Datei").Value 'Dateiname
Set SourceWb = Workbooks.Open(suchfolder & "\" & Suchfile, ReadOnly) 'Quelldatei komplett
For Each Wks In SourceWb.Worksheets
Set SuchBereich = Wks.Range("B6:AF61")
Application.Goto SuchBereich
For Each C In SuchBereich.Columns
Tag = GetValue(Row:=1, col:=C.Column) 'Tag aus der Zelle auslesen -- geht irgendwie  _
nur nach vorherigem Application.Goto?


		

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion geht erst nach vorherigem goto
28.04.2017 23:27:18
Daniel
Hi
naja, Zellbezüge in VBA (Cells, Rows, Columns, Range) ohne Tabellenblattangabe davor beziehen sich immer auf das gerade aktive Tabellenblatt.
Wenn für die Schleifenvariable C den Wert aus der gleichen Spalte in Zeile 1 lesen willst dann geht das am einfachsten mit OFFSET:
Tag = C.Offset(1 - C.Row, 0).value
Gruß Daniel
AW: Funktion geht erst nach vorherigem goto
28.04.2017 23:54:58
Björn
Ich verstehe, Danke!
Ich dachte, den Tabellenblattbezug hätte ich schon hergestellt
(durch die Übergabe von C.Column an die Funktion. Ich dachte durch die vorherigen Definitionen wäre der Bezug gleich SourceWb.Worksheets.Range("B6:AF61).Column(C) - da war ich wohl auf dem Holzweg!)
Möglich wäre dann aber doch eine modifizierte Funktion á la:
Function GetValue(Blatt as Worksheet, Row As Integer, col As Integer)
GetValue = Blatt.Cells(Row, col)
End Function
und der Aufruf via:
Tag = GetValue(Wks,1,C.Column)
oder?
Anzeige
AW: Funktion geht erst nach vorherigem goto
29.04.2017 00:20:44
Daniel
Hi
probiers doch einfach aus.
es ist halt unnötiger Aufwand den du da betreibst.
dein GetValue macht jetzt auch nichts anderes, als die Bereits vorhandene Funktion Cells.
mit Tag = wks.Cells(1, C.Column)
bekommst du das gleiche.
Warum also die Funktion GetValue?
man muss die Sache nicht unnötig kompliziert machen.
Gruß Daniel

174 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige