Registriert seit: 28.04.2017
Version(en): 2010
29.08.2017, 14:38
(Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2017, 14:58 von Kaywarri124.)
Guten Tag, ich habe eine UF mit TextBoxen Die so Formatiert werden Code: Me.txtG20 = Format(Me.txtG20, "MMM YYYY")
Die Zelle, aus die TextBox ihre Werte nimmt, hat die Formel ='[Tabelle1.xlsm]Personal'!L7 jetzt steht in der Tabelle 01.01.1990, was ich schon Ausblende aber in der UF steht ohne Format: 00:00:000 und mit Dez 1899. Frage: Wie bekomm ich aus dem Dez 1899 eine "0" oder am besten eine leere TextBox. Aber wenn in die Zelle dann ein richtiges Datum drin steht soll das schon angezeigt werden.
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo, Code: if isdate(workbooks("Tabelle1.xlsm").Worksheets("Personal").Range("L7")) then Me.txtG20 = Format(Me.txtG20, "MMM YYYY")
Gruß Stefan Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• Kaywarri124
Registriert seit: 28.04.2017
Version(en): 2010
Wow schnelle Antwort danke Steffl,
doch zu meinem bedauern sehe ich das ich da wohl wichtige Infos weggelassen habe.
Die Workbooks("Tabelle1").Worksheets("Personal") ist nicht geöffnet, sie liegt auf einem ganz anderen Laufwerk auf das nur ich zugriff habe.
Daher steht auch in jeder Zelle ='[Tabelle1.xlsm]Personal'!XX
und dazu zu wissen ist...
es ist eine Liste aus vielen Daten. L7 ist in dem fall nur ein Beispiel.
Es handelt sich um 9 TextBoxen in 9 Spalten von L2:T2. Diese stehen in Zusammenhang mit einer Textbox ( txt_Nachname )
Fazit: Deine Lösung ist für mich zu starr :s
Registriert seit: 28.04.2017
Version(en): 2010
Letztendlich muss ja nur das Format der TextBox so gestaltet werden.
Das bei Dez 1899/00:00:0000 bzw. wenn die Zelle den werden "0" hat, die TextBox leer ist
und bei einem Datum "MMM YYYY" anzeigt
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo, (29.08.2017, 15:08)Kaywarri124 schrieb: Die Workbooks("Tabelle1").Worksheets("Personal") ist nicht geöffnet, sie liegt auf einem ganz anderen Laufwerk auf das nur ich zugriff habe.
Daher steht auch in jeder Zelle ='[Tabelle1.xlsm]Personal'!XX
und dazu zu wissen ist... um auf eine geschlossene Datei zuzugreifen zu können, könntest Du zum Beispiel die Funktion GetDataClosedWB von Thomas Ramel verwenden. Zumindest Du könntest dann die Daten auslesen.
Gruß Stefan Win 10 / Office 2016
Registriert seit: 28.04.2017
Version(en): 2010
30.08.2017, 08:15
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2017, 08:15 von Kaywarri124.)
Guten Morgen, ich habe das jetzt mal gesucht und umgeschrieben. Läuft perfekt, danke Steffl für den Tip Code: Public Function GetDataClosedWB(SourcePath As String, _ SourceFile As String, sourceSheet As String, _ SourceRange As String, TargetRange As Range) As Boolean Dim strQuelle As String Dim Zeilen As Long Dim Spalten As Byte On Error GoTo InvalidInput strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range(SourceRange).Cells(7, 11).Address(0, 0) Zeilen = Range(SourceRange).Rows.Count Spalten = Range(SourceRange).Columns.Count With TargetRange.Cells(2, 9).Resize(Zeilen, Spalten) .Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")" .Value = .Value End With GetDataClosedWB = True Exit Function InvalidInput: MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data from closed Workbook" GetDataClosedWB = False End Function
Public Sub Daten_holen_OJ_alt() ' Die Funktion arbeitet mit der obigen GetDataClosedWB zusammen Dim Pfad As String Dim Dateiname As String Dim Blatt As String Dim Bereich As String Dim Ziel As Range Pfad = "I:\Lw\30158920\AUSTAUSCH\1.TStff\Meldungen\Betriebsarzt\" '-> Funktioniert nicht Dateiname = "BA LISTE1.xlsm" ' aus welcher Datei soll er holen? -> Funktioniert nicht Blatt = "Personal " ' von welchem Tabelleblatt soll er holen? -> Funktioniert nicht Bereich = "K7:AA300" ' aus welchem Bereich soll er holen? -> Funktioniert Set Ziel = ActiveSheet.Range("I2:Q2") ' in welchen Bereich soll er kopieren? -> Funktioniert If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then MsgBox "Datenimport abgeschlossen" End If End Sub
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo, Du hattest heute früh ja geschrieben, dass es nicht gehen würde. Jetzt geht es auf einmal. Ich weiß ja nicht, was Du geändert hast aber ich bezweifele, dass es korrekt geht denn so ganz hast Du die Funktion nicht verstanden. Code: strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range(SourceRange).Cells(7, 11).Address(0, 0) Zeilen = Range(SourceRange).Rows.Count Spalten = Range(SourceRange).Columns.Count With TargetRange.Cells(2, 9).Resize(Zeilen, Spalten)
Was soll das Cells(7,11) und Cells(2,9) nach dem Range bzw TargetRange? Hier verschiebst Du den Bereich. Siehe auch mein Codebeispiel Code: Sub prcKat() Dim strBereich As String strBereich = "K7:AA300" prcUebergabe strBereich End Sub
Sub prcUebergabe(strTargetbereich As String) Dim lngSpalten As Long, lngZeilen As Long lngSpalten = Range(strTargetbereich).Columns.Count lngZeilen = Range(strTargetbereich).Rows.Count MsgBox Range(strTargetbereich).Cells(7, 11).Resize(lngZeilen, lngSpalten).Address End Sub
Gruß Stefan Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• Kaywarri124
Registriert seit: 28.04.2017
Version(en): 2010
Ohmann das tut mir aber jetzt leid, Danke das du nochmal drüber geschaut hast. Ich habe das natürlich geändert. Code: Public Function GetDataClosedWB(SourcePath As String, _ SourceFile As String, _ sourceSheet As String, _ SourceRange As String, _ TargetRange As Range) As Boolean
Dim strQuelle As String Dim Zeilen As Long Dim Spalten As Byte
On Error GoTo InvalidInput
strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & _ sourceSheet & "'!" & _ Range(SourceRange).Cells(1, 1).Address(0, 0)
Zeilen = Range(SourceRange).Rows.Count Spalten = Range(SourceRange).Columns.Count
With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten) .Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")" .Value = .Value End With
GetDataClosedWB = True Exit Function
InvalidInput: MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", _ vbExclamation, "Get data from closed Workbook" GetDataClosedWB = False End Function
Private Sub UserForm_Initialize() Dim Pfad As String Dim Dateiname As String Dim Blatt As String Dim Zellen As String
Pfad = "I:\Lw\xxxxxx\xxxxxxxx\xxxxxxxx\xxxxxxxxx\" Dateiname = "xxxxxxx.xlsm" Blatt = "xxxxxxx" Zellen = "K7:AA300" 'auch ein Bereich ist möglich: "B10:C20"
If GetDataClosedWB(Pfad, _ Dateiname, _ Blatt, _ Zellen, _ Worksheets("usernamen").Range("I2")) Then End If
'hier geht mein Code weiter
Danke nochmals, schön Tag noch :)
|