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

Mit deklarationen weiterarbeiten.

Mit deklarationen weiterarbeiten.
27.08.2019 13:53:07
Steve
Guten Tag Leute.
Ich habe mal zwei Fragen. Zum einen geht es mir um den richtigen Begriff.
Per VBA wird bei mir ein neues Tabellenblatt generiert und automatisch umbenannt.
Damit der Code damit weiterarbeiten kann, heisst es derweil "Blatt"
Das habe ich so gemacht: (funktioniert auch)
Blatt = .Name
ActiveSheet.Range("A2") = Blatt
Meine erste Frage ist, wie nenne ich das "Blatt" wenn ich z.B. eine Hilfe brauche. Ist das ein ausdruck, ein Name, oder eine Deklaration? Also wie nenne ich das, damit ihr wisst wovon ich rede?
Das bringt mich zu meiner zweiten Frage. Ich habe den Ausdruck Blatt in die erstellung von Hyperlinks untergebracht. Das funktioniert tadellos.
Also dachte ich mir, ich verwende ihn weiter in einem SVERWEIS. Geht das überhaupt?
Irgendwie klappt das nämlich nicht so ganz. Meistens wird die Zeile sofort rot markiert.
Sheets("LISTE").Select
With Worksheets("LISTE")
lZ = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If Cells(2, 1).Value = "" Then lZ = 2
.Cells(lZ, 1).Value = Blatt
.Cells(lZ, 1).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:= _
Blatt & "!A1", TextToDisplay:=Blatt
.Cells(lZ, 2).Value = NNam
.Cells(lZ, 3).Value = VNam
.Cells(lZ, 4).Value = WorksheetFunction.VLookup(1, Cells(lZ, 1) & Blatt ".[A4:O24]", 2, False)
Hier mal der SVerweis wenn ich ihn per hand in die Zelle schreibe: =SVERWEIS(1;'001'!A5:O24;2;FALSCH)
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt und danke schon einmal für eure Hilfe.
Liebe Grüße
Steve

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit deklarationen weiterarbeiten.
27.08.2019 14:46:02
Werner
Hallo Steve,
1. das ist eine Variable (lZ = Long, Blatt = String
2. solltest du die auch Deklarieren (keine Ahnung ob du das gemacht hast)
Dein Code:
Public Sub bbb()
Dim lZ As Long, Blatt As String
With Worksheets("LISTE")
lZ = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
If Cells(2, 1).Value = "" Then lZ = 2
.Cells(lZ, 1).Value = Blatt
.Cells(lZ, 1).Hyperlinks.Add Anchor:=Selection, Address:="", _
SubAddress:=Blatt & "!A1", TextToDisplay:=Blatt
.Cells(lZ, 2).Value = NNam
.Cells(lZ, 3).Value = VNam
.Cells(lZ, 4).Value = WorksheetFunction.VLookup(1, Worksheets(Blatt).Range("A4:O24"), 2, _
False)
End If
End With
End Sub
Warum benutzt du beim VLookup die Range bis Spalte O, wenn du den Wert aus Spalte B willst? Da würde dann doch .Range("A4:B24") reichen.
Der Zeilenumbruch beim VLookup muss raus, der wurde von der Forensoftware eingefügt.
Gruß Werner
Anzeige
AW: Mit deklarationen weiterarbeiten.
27.08.2019 15:21:03
Steve
Moin Werner,
vielen Dank für deine Hilfe. Ich habe das eingefügt, aber irgendwie funktioniert das nicht.
Also es passiert garnichts. Das neue Tabellenblatt wird angelegt. Der Eintrag in dem Sheet Liste wird gemacht, aber der SVerweis ist nicht da.
Warum bis O. Das liegt daran, das ich über 120 SVwerweise benötige die alle in diesem Range liegen.
Ziel soll sein jedes Tabellenblatt auszulesen und an anderer Stelle in Listenform auszugeben, damit diese Daten dann für ein Serienbrief weiterverwendet werden können.
Jo, Blatt und LZ sind exakt so deklariert. Also Blatt als String und LZ als Long.
Liebe Grüße
Steve
Anzeige
AW: Mit deklarationen weiterarbeiten.
27.08.2019 15:08:15
Steve
Moin,
ich habe etwas rumprobiert.
Wenn ich das folgende Verwende:
.Cells(lZ, 4).Value = WorksheetFunction.VLookup(1, Blatt & .[$A$4:$O$24], 2, False)
erscheint der SVerweis zumindest an der richtigen Stelle, sieht aber so aus:
=SVERWEIS(1;#BEZUG!A5:O24;2;FALSCH)
Hilft das vielleicht?
LG Steve
AW: Mit deklarationen weiterarbeiten.
27.08.2019 15:17:35
Werner
Hallo Steve,
was hälst du denn davon, wenn du wenigstens mal den ganzen Code zeigst und nicht nur Fragmente davon.
Gruß Werner
AW: Mit deklarationen weiterarbeiten.
27.08.2019 15:22:13
Steve
Hallo Werner,
Mache ich gerne. Dachte nur, weil der so umfangreich ist, ist das nur verwirrend.
Sub ERSTELLEN()
'NEUE FOLIE ERSTELLEN'
''''MASTER kopieren& entsperren, freie NR. ermitteln & entsprechend benennen.
Sheets("MASTER").Unprotect
Sheets("MASTER").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFiltering:=True, AllowUsingPivotTables:=True
Dim i As Integer, j As Integer, z As Integer, Arr() As Integer, vz As String
Dim NName As String, Mmax As Integer, Istda As Boolean
Dim TBM, TBN, Neu As Integer, ZB As Boolean
Dim Blatt As String
Set TBM = Sheets("Master") 'die MasterTab
For i = 1 To Sheets.Count
NName = Sheets(i).Name
If IsNumeric(NName) Then
ReDim Preserve Arr(z)
Arr(z) = NName
z = z + 1
ZB = True
End If
Next
If ZB Then
Mmax = Application.WorksheetFunction.Max(Arr)
For i = 1 To Mmax
For j = LBound(Arr) To UBound(Arr)
If Arr(j) = i Then
Istda = True
Exit For
Else
Istda = False
End If
Next j
If Istda = False Then
Neu = i
GoTo Weiter
End If
Next i
End If
Weiter:
With TBM
.Visible = True
.Copy after:=Sheets(Sheets.Count)
.Visible = False
End With
With ActiveSheet
vz = "00"
If Mmax = i - 1 And Mmax >= 9 And Mmax  Mmax Then
If i >= 10 And i  0, vz & Neu, vz & Mmax + 1)
ActiveSheet.Unprotect
Blatt = .Name
ActiveSheet.Range("A2") = Blatt
End With
''''Vorname ermitteln
Dim VNam As String
VNam = InputBox("Vorname eingeben:", "Vorname")
If VNam = "" Then
MsgBox "Es muss ein Vorname angegeben werden."
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
Exit Sub
End If
''''Nachname ermitteln
Dim NNam As String
NNam = InputBox("Nachname eingeben:", "Nachname")
If NNam = "" Then
MsgBox "Es muss ein Nachname angegeben werden."
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
Exit Sub
End If
ActiveSheet.Range("C2") = NNam & ", " & VNam
'ORDNER FÜR NEUE TABELLE'
Dim filesystem As Object
Dim strPfad As String
strPfad = ThisWorkbook.Path
Set filesystem = CreateObject("Scripting.FileSystemObject")
filesystem.CopyFolder strPfad & "\001 Aktive Mitarbeiter\000 MASTER", strPfad & "\001  _
Aktive Mitarbeiter\" & Blatt
Set filesystem = Nothing
'HYPERLINKS FÜR NEUE TABELLE'
Range("L5").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "001%20Arbeitsanweisungen", _
TextToDisplay:="Arbeitsanweisungen"
Range("L6").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "002%20Krank", _
TextToDisplay:="Krank"
Range("L7").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "003%20Urlaub", _
TextToDisplay:="Urlaub"
Range("L8").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "004%20Kleidung_Werkzeug", _
TextToDisplay:="Kleidung / Werkzeug"
Range("L9").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "005%20sonstiges", _
TextToDisplay:="SONSTIGES"
Range("A2").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"001 Aktive Mitarbeiter\" & Blatt, _
TextToDisplay:=Blatt
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFiltering:=True, AllowUsingPivotTables:=True
'STARTSEITE BEFÜLLEN UND SORTIEREN'
Dim lZ As Long
Sheets("Startseite").Select
With Worksheets("Startseite")
lZ = .Cells(Rows.Count, 2).End(xlUp).Row + 1
If Cells(2, 2).Value = "" Then lZ = 2
.Cells(lZ, 2).Value = Blatt
.Cells(lZ, 2).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Blatt & "!A1", TextToDisplay:=Blatt
.Cells(lZ, 3).Value = NNam
.Cells(lZ, 4).Value = VNam
End With
'LISTENSEITE BEFÜLLEN UND SORTIEREN'
Sheets("LISTE").Select
With Worksheets("LISTE")
lZ = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If Cells(2, 1).Value = "" Then lZ = 2
.Cells(lZ, 1).Value = Blatt
.Cells(lZ, 1).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Blatt & "!A1", TextToDisplay:=Blatt
.Cells(lZ, 2).Value = NNam
.Cells(lZ, 3).Value = VNam
' .Cells(lZ, 4).Value = WorksheetFunction.VLookup(1, Blatt.[$A$4:$O$24], 2,  _
False)
.Cells(lZ, 4).Value = WorksheetFunction.VLookup(1, Worksheets(Blatt).Range("A4: _
O24"), 2, False)
' [B1] = WorksheetFunction.VLookup([A1], Sheets("Tabelle2").[A1:B4], 2, False) _
'=SVERWEIS(1;'001'!A5:O24;2;FALSCH)
End With
'PERSONALMAPPEN NUMMERISCH SORTIEREN'
Sheets("Startseite").Select
Dim intI As Integer, intJ As Integer
For intI = 1 To Sheets.Count
For intJ = 1 To Sheets.Count - 1
If UCase(Sheets(intJ).Name) > UCase(Sheets(intJ + 1).Name) Then
Sheets(intJ).Move after:=Sheets(intJ + 1)
End If
Next
Next
''''ARBEITSLISTEN NACH VORNE SORTIEREN
With Worksheets("INAKTIVE")
.Move Before:=Sheets(1)
End With
With Worksheets("LISTE")
.Move Before:=Sheets(1)
End With
With Worksheets("Startseite")
.Move Before:=Sheets(1)
End With
''''MASTERFOLIE SPERREN
Sheets("MASTER").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub

Gruß Steve
Anzeige
AW: Mit deklarationen weiterarbeiten.
27.08.2019 17:08:11
Werner
Hallo,
teste mal:
Sub ERSTELLEN()
Dim i As Long, j As Long, z As Long, Arr() As Long, vz As String
Dim NName As String, Mmax As Long, Istda As Boolean, TBM As Long, TBN As Long
Dim Neu As Long, ZB As Boolean, Blatt As String, VNam As String, NNam As String
Dim filesystem As Object, strPfad As String, lZ As Long, intI As Long, intJ As Long
Sheets("MASTER").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFiltering:=True, AllowUsingPivotTables:=True
Set TBM = Sheets("Master") 'die MasterTab
For i = 1 To Sheets.Count
NName = Sheets(i).Name
If IsNumeric(NName) Then
ReDim Preserve Arr(z)
Arr(z) = NName
z = z + 1
ZB = True
End If
Next
If ZB Then
Mmax = Application.WorksheetFunction.Max(Arr)
For i = 1 To Mmax
For j = LBound(Arr) To UBound(Arr)
If Arr(j) = i Then
Istda = True
Exit For
Else
Istda = False
End If
Next j
If Istda = False Then
Neu = i
GoTo Weiter
End If
Next i
End If
Weiter:
With TBM
.Visible = True
.Copy after:=Sheets(Sheets.Count)
.Visible = False
End With
With ActiveSheet
vz = "00"
If Mmax = i - 1 And Mmax >= 9 And Mmax  Mmax Then
If i >= 10 And i  0, vz & Neu, vz & Mmax + 1)
.Unprotect
Blatt = .Name
.Range("A2") = Blatt
''''Vorname ermitteln
VNam = InputBox("Vorname eingeben:", "Vorname")
If VNam = "" Then
MsgBox "Es muss ein Vorname angegeben werden."
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
Exit Sub
End If
''''Nachname ermitteln
NNam = InputBox("Nachname eingeben:", "Nachname")
If NNam = "" Then
MsgBox "Es muss ein Nachname angegeben werden."
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
Exit Sub
End If
.Range("C2") = NNam & ", " & VNam
'ORDNER FÜR NEUE TABELLE'
strPfad = ThisWorkbook.Path
Set filesystem = CreateObject("Scripting.FileSystemObject")
filesystem.CopyFolder strPfad & "\001 Aktive Mitarbeiter\000 MASTER", _
strPfad & "\001_Aktive Mitarbeiter\" & Blatt
Set filesystem = Nothing
'HYPERLINKS FÜR NEUE TABELLE'
.Range("L5").Hyperlinks.Add Anchor:=.Range("L5"), Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "001%20Arbeitsanweisungen", _
TextToDisplay:="Arbeitsanweisungen"
.Range("L6").Hyperlinks.Add Anchor:=.Range("L6"), Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "002%20Krank", _
TextToDisplay:="Krank"
.Range("L7").Hyperlinks.Add Anchor:=.Range("L7"), Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "003%20Urlaub", _
TextToDisplay:="Urlaub"
.Range("L8").Hyperlinks.Add Anchor:=.Range("L8"), Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "004%20Kleidung_Werkzeug", _
TextToDisplay:="Kleidung / Werkzeug"
.Range("L9").Hyperlinks.Add Anchor:=.Range("L9"), Address:= _
"001 Aktive Mitarbeiter\" & Blatt & "\" & "005%20sonstiges", _
TextToDisplay:="SONSTIGES"
.Range("A2").Hyperlinks.Add Anchor:=.Range("A2"), Address:= _
"001 Aktive Mitarbeiter\" & Blatt, _
TextToDisplay:=Blatt
.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFiltering:=True, AllowUsingPivotTables:=True
End With
'STARTSEITE BEFÜLLEN UND SORTIEREN'
With Worksheets("Startseite")
lZ = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
If .Cells(2, 2).Value = "" Then lZ = 2
.Cells(lZ, 2).Value = Blatt
.Cells(lZ, 2).Hyperlinks.Add Anchor:=.Cells(lZ, 2), Address:="", SubAddress:= _
Blatt & "!A1", TextToDisplay:=Blatt
.Cells(lZ, 3).Value = NNam
.Cells(lZ, 4).Value = VNam
End With
'LISTENSEITE BEFÜLLEN UND SORTIEREN'
With Worksheets("LISTE")
lZ = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
If .Cells(2, 1).Value = "" Then lZ = 2
.Cells(lZ, 1).Value = Blatt
.Cells(lZ, 1).Hyperlinks.Add Anchor:=.Cells(lZ, 1), Address:="", SubAddress:= _
Blatt & "!A1", TextToDisplay:=Blatt
.Cells(lZ, 2).Value = NNam
.Cells(lZ, 3).Value = VNam
.Cells(lZ, 4).Value = WorksheetFunction.VLookup _
(1, Worksheets(Blatt).Range("A4:O24 "), 2, False)
.Range("B1") = WorksheetFunction.VLookup _
(.Range("A1"), Worksheets("Tabelle2").Range("A1:B4"), 2, False)
End With
'PERSONALMAPPEN NUMMERISCH SORTIEREN'
For intI = 1 To Sheets.Count
For intJ = 1 To Sheets.Count - 1
If UCase(Sheets(intJ).Name) > UCase(Sheets(intJ + 1).Name) Then
Sheets(intJ).Move after:=Sheets(intJ + 1)
End If
Next
Next
''''ARBEITSLISTEN NACH VORNE SORTIEREN
With Worksheets("INAKTIVE")
.Move Before:=Sheets(1)
End With
With Worksheets("LISTE")
.Move Before:=Sheets(1)
End With
With Worksheets("Startseite")
.Move Before:=Sheets(1)
End With
''''MASTERFOLIE SPERREN
Sheets("MASTER").Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub
Gruß Werner
Anzeige
AW: Mit deklarationen weiterarbeiten.
27.08.2019 19:39:09
Steve
Hallo Werner,
Teste ich morgen sobald ich kann. Ich bin gespannt.
Nebenher eine Frage. Ich erwähnte ja das ich über hundert sverweise benötige.
Ich habe mir die Frage gestellt ob das nicht ein wenig viel im Sinne des Speicherbedarfs ist.
Macht es Sinn wenn ich erst innerhalb des erstellten Tabellenblattes alle Daten in einem versteckten Bereich umsortiere und dann in das Sheet „Liste“ übertrage? Durch die Umsortierung würden die Daten ja in einer Zeile stehen. (Sollen ja für ein Serienbrief abrufbar sein)
Dann müsste nur ein einzelner Befehl im vba-Code die ganze Zeile übernehmen.
Hab zwar noch keine Ahnung wie. Aber letztlich denke ich an sowas wie (lz,4) bis (lz, beliebige Zahl)
Hoffe man kann verstehen worauf ich hinaus möchte.
Liebe Grüße.
Steve.
Anzeige
TEST
28.08.2019 11:31:34
Steve
Moin Werner,
zunächst einmal ein Riesen-Dankeschön. Ich sehe du hast ein wenig aufgeräumt. Dabei habe ich noch das eine oder andere gelernt. Sehe ich das richtig, wenn ich
With Worksheets("Startseite") - schreibe, kann ich mir zuvor
Sheets("Startseite").Select - sparen?
die Hyperlinks hast du ebenfalls aufgeräumt. Das ist eine wertvolle Hilfe für mich. Ich werde versuchen das für zukünftige Projekte zu übernehmen.
Leider bekomme ich aber eine Fehlermeldung wie folgt.
"Objekt erforderlich" - und markiert folgende Zeile
Set TBM = Sheets("Master")
Ich habe Testweise mal nur den Bereich für die Listenseite in meinen bestehenden Code übernommen.
Dann erhalte ich den Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs mit folgender Markierung.
.Range("B1") = WorksheetFunction.VLookup _
(.Range("A1"), Worksheets("Tabelle2").Range("A1:B4"), 2, False)
Ich dachte es liegt daran das da noch "Tabelle2" steht und habe Blatt eingegeben. Aber das funktionierte leider auch nicht.
Kannst du dir das wohl nochmal Bitte anschauen.
Liebe Grüße
Steve
Anzeige
AW: TEST
28.08.2019 12:41:21
Hajo_Zi
Es gibt die Tabelle Master nicht.
Das ist nur eine Vermutung,da ich nicht auf fremde Rechner schaue.
Gruss Hajo
AW: TEST
28.08.2019 13:39:17
Steve
Moin Hajo,
doch, die Tabelle existiert schon. Der Code funktioniert, bis auf meine Fragestellung tadellos.
Ich sende hier mal die Datei. Vielleicht hilft das jemand weiter.
Ich habe die Bereiche für Hyperlinks und erstellen der Ordner deaktivert, da sie ja so ohne weiteres auf einem anderen Rechner nicht funktionieren würden.
https://www.herber.de/bbs/user/131682.xlsm
Gruss Steve
AW: TEST
28.08.2019 17:11:18
Hajo_Zi
Die Tabelle ist ausgeblemdet. Arbeite mit With.
Gruß Hajo
Anzeige
AW: TEST
28.08.2019 21:07:30
Werner
Hallo Steve,
da hab ich nicht genau genug geschaut.
Zum Fehler Object erforderlich
Das hier:
Dim NName As String, Mmax As Long, Istda As Boolean, TBM As Long, TBN As Long

ändern in:
Dim NName As String, Mmax As Long, Istda As Boolean, TBM As Worksheet, TBN As Long
Wegen dem Fehler beim Vlookup kann ich im Moment nichts sagen, weil ich nicht weiß wo deine Matrix (auf welchem Tabellenblatt) ist, Tabelle2 gibt es ja nicht.
.Range("B1") = WorksheetFunction.VLookup _
(.Range("A1"), Worksheets("Tabelle2").Range("A1:B4"), 2, False)
Gruß Werner
Anzeige
AW: TEST
29.08.2019 12:17:03
Steve
Moin Werner,
hab das geändert. Nun stoppt er an einer anderen Stelle die in meiner Version tadellos funktioniert.
'''''''''''''''''''''''''
'ORDNER FÜR NEUE TABELLE'
'''''''''''''''''''''''''
strPfad = ThisWorkbook.Path
Set filesystem = CreateObject("Scripting.FileSystemObject")
filesystem.CopyFolder strPfad & "\001 Aktive Mitarbeiter\000 MASTER", _
strPfad & "\001_Aktive Mitarbeiter\" & Blatt

Set filesystem = Nothing
Der Pfad wird nicht gefunden. Wenn ich deine Version aber mit meiner Vergleiche, sehe ich keine Änderung. Der Pfad existiert und wie gesagt, es hat bisher funktioniert.
Bei Vlookup ist die Matrix immer in dem neu erstellten Tabellenblatt. Dieses läuft ja als "Blatt" solange das Makro läuft. Der Zielort ist dann das Worksheet "Liste" in den jeweiligen Spalten und in der Spalte die dem Namen von "Blatt" entsprocht.
Ich denke ich sende mal die Datei so, das auch die Ordner erstellt und umbeannt werden. Vielleicht hilft das ja.
https://www.herber.de/bbs/user/131709.zip
Wie gesagt, grundsätzlich funktioniert meine Version. Ich bekomme nur den SVerweis nicht hin.
Gruß Steve
Liebe Grüße
Steve
Anzeige
AW: TEST
29.08.2019 13:03:23
Werner
Hallo Steve,
zu dem Fehler mit dem Pfad:
Den kann ich nicht reproduzieren.
1. Datei mit dem Makro in einem Ordner speichern
2. die beiden Ordner 001 Aktive Mitarbeiter und 002 Inaktive Mitarbeiter im gleichen Verzeichnis wie die Datei mit dem Makro speichern
Beim Anlegen eines neuen Mitarbeiter wird im Ordner 001 Aktive Mitarbeiter ein Unterordner mit der jeweiligen Nummer und in diesem Unterordner 5 Unterordner 001 Arbeitsanweisungen, 002 Krank, 003 Urlaub, 004 Kleidung_Werkzeug und 005 sonstiges angelegt.
Bei mir keine Fehlermeldung.
Getestet mit deiner eben hochgeladenen Mappe, ohne irgendwelche Änderungen am Code.
Wegen dem VLookup. Schick doch mal eine Mappe in der du den VLookup als SVerweis Formel im Blatt eingetragen hast.
Gruß Werner
AW: TEST
30.08.2019 07:12:24
Steve
Moin Werner,
hast du auch deinen oder meinen Code ausgeführt? Deiner steht als Werner drin, ist aber nicht bei dem Button hinterlegt. Da ist noch meiner hinterlegt.
Wegen dem VLookup. Schick doch mal eine Mappe in der du den VLookup als SVerweis Formel im Blatt eingetragen hast.
- Ich stehe gerade was auf dem Schlauch. Habe ich das richtig verstanden? Ich soll manuell die SVerweise eintragen? Vermutlich damit du sehen kannst woher die Daten kommen und wohin sie sollen? Ist das so korrekt?
Gruß Steve
AW: TEST
30.08.2019 08:20:34
Werner
Hallo Steve,
das war mir nicht aufgefallen, dass da noch das alte Makro auf der Schaltfläche liegt. Ein kleiner Hinweis wäre nicht schlecht gewesen.
Test jetzt, läuft in den Fehler Pfad nicht gefunden.
Du schreibst, dass in beiden Makros die Pfadangaben gleich sind - da hast du aber nicht richtig geschaut, die sind unterschiedlich.
strPfad = ThisWorkbook.Path
Set filesystem = CreateObject("Scripting.FileSystemObject")
filesystem.CopyFolder strPfad & "\001 Aktive Mitarbeiter\000 MASTER", _
strPfad & "\001_Aktive Mitarbeiter\" & Blatt
Set filesystem = Nothing
Beim fett markierten Teil ist ein Unterstrich im Ordnernamen und der Unterstrich muss raus.
Und wegen dem SVEWEIS - ja genau das habe ich gemeint.
Gruß Werner
AW: TEST
30.08.2019 15:14:45
Steve
Moin Werner,
ja, da hast du recht. War sehr dusselig von mir.
Und ja, der Unterstrich ist mir echt nicht aufgefallen. Ich habe keine Ahnung wo der herkommt. Der gehört da natürlich nicht hin.
Hab den weggenommen und ich meine es ist dann durchgelaufen bis zu deinem SVerweis.
Heute auf Arbeit habe ich schon einmal angefangen die SVerweise einzufügen. Bin aber noch nicht fertig geworden. Kann das aber erst morgen fertig machen. Ich sende dir das, sobald es fertig ist und danke dir für deine bisherige Hilfe.
Gruß Steve
AW: TEST
31.08.2019 17:55:38
Hajo_Zi
Hallo Steve,
offen bedeutet es soll noch eine Antwort kommen.
Warum ist dein Beitrag Offen.
Du willst doch was machen. Soll jemand vorbei kommen?
Das ist nur meine Meinung zu dem Thema.

...die aber keine Sau interessiert! o.w.T.
31.08.2019 18:48:24
Werner
AW: TEST
01.09.2019 18:28:12
Steve
Moin Hajo,
Um ehrlich zu sein, dachte ich es muss so sein, damit Werner sieht das ich geantwortet habe. Aber danke für den Hinweis.
Ich denke mir zwar, das deine Beiträge schon ein wenig freundlicher sein könnten, aber ich danke dennoch für den Hinweis und auch für deine Hilfe; Auch wenn diese für mich als Laie zumeist schwer zu verstehen sind.
Liebe Grüße
Steve
Hausaufgaben wurden gemacht
02.09.2019 14:14:35
Steve
Moin Werner,
ich habe nun mal was vorbereitet.
Zunächst einmal habe ich nun dein Makro auf die Schaltfläche "Neuer Mitarbeiter" gelegt.
Dann habe ich zwei Mitarbeiter angelegt. (musste um alles vorzubereiten den Blattschutz entfernen.)
Mitarbeiter 001 - ist meine ursprüngliche Idee.
Mitarbeiter 002 - eine andere Idee, die vielleicht besser ist.
Wäre schön du kannst mir da sagen was besser ist. Vielleicht hast du ja auch eine bessere Idee.
Kurze Krklärung: Durch aktivieren von "Neuer Mitarbeiter" wird ein neues Sheet erstellt.
Hierzu wird das versteckte Sheet MASTER kopiert und umbenannt. Die Sheets werden automatisch Nummerisch und aufsteigend - Lücken werden aufgefüllt - erstellt.
Ich habe immer exemplarisch drei vollständige Eingaben vorbereitet und farbig markiert.
In derselben aber dunkleren Farbe habe ich alle Felder markiert die für diese Funktion relevant wären.
Zu Mitarbeiter 001 (Sheet 001)
Die vorbereiteten Felder sind Hellblau und finden sich per SVERWEIS in dem Sheet LISTE wieder.
In dunkelblau habe ich alle Felder markiert die letztlich noch dazugehören.
Die Formel SVERWEIS steht also in dem Sheet LISTE
zu Mitarbeiter 002 (Sheet 002)
Hier habe ich die entsprechenden Felder in Gelb markiert, aber einen anderen Ansatz mit einem Zwischenschritt verfolgt.
Zunächst werden die Betroffenden Felder in einen neuen Bereich übertragen.
(selbes Sheet R5:EG5 / kann ja ausgeblendet werden)
Ich denke der Vorteil hier könnte sein, das man weniger Code benötigt da man das ja in der Masterfolie direkt eingeben kann und bei Änderungen oder Ergänzungen in der Masterfolie flexibler ist.
Dann müsste nur diese eine Zeile in das Sheet LISTE übertragen werden.
https://www.herber.de/bbs/user/131787.zip
So, ich hoffe ich habe dieses mal nichts relevantes vergessen und danke dir herzlich für deine Hilfe.
Liebe Grüße
Steve
Bescheidene Frage
04.09.2019 11:36:47
Steve
Moin,
um das mal abschließend zu klären. Wenn ich mit jemandem in einer Lösungsfindung bin und eine Antwort versende. Sieht diese Person nur das ich geantwortet habe, wenn ich mit dem Haken dafür sorge, das meine Antwort in den offenen Fragen angezeigt wird?
Oder erhält diese Person auch so Kenntnis davon das ich geantwortet habe?
Ich weiss nun tatsächlich nicht wie ich mich zu verhalten habe.
Liebe Grüße
Steve

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige