Registriert seit: 02.12.2017
Version(en): Office 365
Hallo zusammen...
ich bräuchte mal wieder Hilfe bitte..
und zwar möchte ich eine Matrix in meiner selber geschriebenen Function, über mehrere Tabellenblätter nutzen. Momentan ist die Matrix als Range Deklariert da sie nur im Tabellenblatt das aktiv war genutzt wurde z.B. (A1:A5).
Nun bräuchte ich aber das ganze für z.B. (Tabelle1!A1:A5) aus Tabelle2 aufgerufen!
Wie muss ich das deklarieren?
Eine Menge reden, aber nichts sagen können viele...
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
ich möchte KEINEN Streit anzetteln, aber mein Vorschlag ist:
Code:
Sub F_en()
Ar = Sheets(1).Range("A5:F34")
'mach was
end sub
Ar ist ein 2-dim Array.
mfg
Registriert seit: 02.12.2017
Version(en): Office 365
Das ist ein fester Bereich, ich übergebe den Bereich über die Function (Formel im Tabellenblatt)
Eine Menge reden, aber nichts sagen können viele...
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
Du kannst einer Funktion doch mehr als einen Parameter übergeben, gib halt auch das Worksheet mit.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 02.12.2017
Version(en): Office 365
Meine Function sieht momentan so aus:
Code:
Function WE(Suchtag As String, SuchtageBereich As Range, SuchName As String, SFr?h As Range, SSp?t As Range, SNacht As Range, Optional ByVal Datsuch As Integer) As Integer
Dim Spalte As Integer
Dim Cell As Range
Dim i As Integer
Dim g As Integer
Dim h As Integer
Dim A As Integer
'Suchtag ist der zu suchende Wochentag / Feiertage
'SuchtageBereich ist der Bereich in dem der Tag/Begriff gesucht werden soll
'SFr?h ist der Suchbereich Fr?hschicht
'SSp?t ist der Suchbereich Sp?tschicht
'SNacht ist der Suchbereich Nachtschicht
'SuchName ist die zu suchende Person
If Datsuch = 1 Then
For Each Cell In SuchtageBereich
If Cell.Value > "" And Cell.Value <= Date Then
If Format(Cell, "DDDD") = Suchtag Then
For i = SFr?h.Cells(1).Row To SFr?h.Cells(SFr?h.Cells.Count).Row
If Cell <> "" Then
If Cells(i, Cell.Column).Value = SuchName Then A = A + 1
End If
Next
For g = SSp?t.Cells(1).Row To SSp?t.Cells(SSp?t.Cells.Count).Row
If Cell <> "" Then
If Cells(g, Cell.Column).Value = SuchName Then A = A + 1
End If
Next
For h = SNacht.Cells(1).Row To SNacht.Cells(SNacht.Cells.Count).Row
If Cell <> "" Then
If Cells(h, Cell.Column - 1).Value = SuchName Then A = A + 1
End If
Next
End If
End If
Next
Else
For Each Cell In SuchtageBereich
If Cell.Value > "" Then
If Format(Cell, "DDDD") = Suchtag Then
For i = SFr?h.Cells(1).Row To SFr?h.Cells(SFr?h.Cells.Count).Row
If Cell <> "" Then
If Cells(i, Cell.Column).Value = SuchName Then A = A + 1
End If
Next
For g = SSp?t.Cells(1).Row To SSp?t.Cells(SSp?t.Cells.Count).Row
If Cell <> "" Then
If Cells(g, Cell.Column).Value = SuchName Then A = A + 1
End If
Next
For h = SNacht.Cells(1).Row To SNacht.Cells(SNacht.Cells.Count).Row
If Cell <> "" Then
If Cells(h, Cell.Column - 1).Value = SuchName Then A = A + 1
End If
Next
End If
End If
Next
End If
WE = A
End Function
nun möchte ich mit der Formel aber die Berechnung nicht im Aktiven Tabellenblatt machen, sondern eben in einem andern! Allerdings wird die Formel dann eben halt nicht berechnet! Meine Vermutung war dann eben jetzt, dass das Tabellenblatt eben nicht richtig in die Dimensionierung mit übergeben wird...
Eine Menge reden, aber nichts sagen können viele...
Registriert seit: 02.12.2017
Version(en): Office 365
Ich hab den Fehler für "Each cell" muss das Tabellenblatt aktiv sein...
Eine Menge reden, aber nichts sagen können viele...
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
Fragezeichen im Variablennamen? Geht das bei dir? Bei mir werden die Zeilen rot angzeigt.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 02.12.2017
Version(en): Office 365
die Fragezeichen sind Umlaute die es beim Kopieren wohl nicht erkannt hat...
Eine Menge reden, aber nichts sagen können viele...
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin!
VBA speaks english.
Deshalb sollte man es sich angewöhnen, ausschließlich (erlaubte) Zeichen zu verwenden, die auch auf der US-Tastatur vorhanden sind.
Schließlich würde kein Däne eine UDF Øre nennen (auch wenn das funktioniert), wenn das produktiv auch bei uns eingesetzt werden muss …
Zitat:Ich hab den Fehler für "Each cell" muss das Tabellenblatt aktiv sein...
Nein!
Steffl schrieb Dir doch bereits, was Du machen musst (Parameter
$Sh oder in der langen Schreibweise
TabellenName As String)
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 02.12.2017
Version(en): Office 365
02.11.2018, 09:06
(Dieser Beitrag wurde zuletzt bearbeitet: 02.11.2018, 09:07 von Frogger1986.)
Jetzt sitze ich auf der Leitung Ralf... Ich habe bereits Separat (in der Syntax) versucht den Tabellennamen mit in die Formel zu integrieren, das hat jedoch auch nicht funktioniert... könntest du mir das näher in einem Beispiel oder anhand meines codes zeigen?? Ich ab schon Google bemüht jedoch ohne Erfolg...
Eine Menge reden, aber nichts sagen können viele...