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

Auflistung anzeigen

Auflistung anzeigen
31.07.2019 09:11:28
Strijbos
Hallo zusammen,
ich habe da mal 2. Probleme.
Problem Nr. 1:
Wenn ich eine Excel Datei starte, möchte ich das bis auf 2 bestimmte Excel Blätter (Maske und Bearbeitung) alle anderen Blätter gelöscht werden(egal wie sie heißen).Dann soll von einer anderen Excel Datei die auf einem Server liegt die kompletten Excel Blätter geladen werden mit allen Werten und die in die aktuelle Tabelle gespeichert werden.
Problem Nr. 2:
Ich lade schon die Namen der Excelblätter ein und habe auf diese Namen ein Listenfeld erzeugt. Nun möchte ich, dass wenn das Listenfeld ein Excelblatt gewählt wird,dass die Werte von diesen Blatt die unter A1 bis A50 liegen angezeigt werden sollen, unter dem Listenfeld.
Beispiel Listenfeld liegt auf B4 auf dem Blatt Maske Dann sollen die Werte in B6 bis B56 angezeigt werden.
Über Hilfe Stellung würde ich mich freuen
Gruß Björn

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Problem Nr. 1:
31.07.2019 09:30:09
Nepumuk
Hallo Björn,
in das Modul "DieseArbeitsmappe":
Option Explicit
Private Sub Workbook_Open()
Dim objWorksheet As Worksheet
Dim objWorkbook As Workbook
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
For Each objWorksheet In Worksheets
Select Case objWorksheet.Name
Case "Maske", "Bearbeitung"
'do nothing
Case Else
Call objWorksheet.Delete
End Select
Next
Application.DisplayAlerts = True
Set objWorkbook = Workbooks.Open(Filename:= _
"C:\Users\kafflm\Desktop\Mappe2.xlsx", _
UpdateLinks:=3, ReadOnly:=True)
Call objWorkbook.Worksheets.Copy(After:=Worksheets(2))
Call objWorkbook.Close(SaveChanges:=False)
Application.ScreenUpdating = True
End Sub

Du muss noch den Pfad zur Datei anpassen deren Blätter importiert werden sollen.
Zum Problem 2 wäre es schön wenn du eine Mustermappe hochladen würdest.
Gruß
Nepumuk
Anzeige
AW: Problem Nr. 1:
31.07.2019 09:58:53
Strijbos
Danke schon mal .
Makro löscht die Daten und öffnet die 2. Datei. Kopiert diese aber nicht.
Habe dir mal beide beiden Dateien hochgeladen. Danke dir für deine Hilfe
Gruß Björn
AW: Problem Nr. 1:
31.07.2019 10:03:51
Nepumuk
Hallo Björn,
1. Du musst nach dem Hochladen der Dateien den angezeigten Link in deine Antwort kopieren. Sonst wird das nichts.
2. Kann ich nicht nachvollziehen, bei mir hat der Code genau das gemacht.
Gruß
Nepumuk
AW: Problem Nr. 1:
31.07.2019 10:14:23
Strijbos
Hast du das Zip File gesehen ? Weis nicht genau wo ich den Fehler gemacht habe .
Aber dort hast du die beiden Dateien wo ich die Daten Her beziehen möchte
Gruß Björn
Anzeige
AW: Problem Nr. 1:
31.07.2019 10:21:01
Nepumuk
Hallo Björn,
ich hatte doch geschrieben, das Makro muss in das Modul "DieseArbeitsmappe" nicht in Modul1.
Gruß
Nepumuk
AW: Problem Nr. 1:
31.07.2019 14:57:34
Strijbos
Danke hat funktioniert
Danke dir
Hast du eine Idee zu Problem 2 ?
Grußß Björn
AW: Problem Nr. 2:
31.07.2019 16:50:49
Nepumuk
Hallo Björn,
in das Modul der Tabelle "Bearbeitung" (Rechtsklick auf den Tabellenreiter - Code anzeigen)
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim objWorksheet As Worksheet
    Dim lngEmptyRow As Long
    If Target.Column = 1 Then
        If Not IsEmpty(Target.Value) Then
            For Each objWorksheet In ThisWorkbook.Worksheets
                With objWorksheet
                    If .Name = Target.Value Then
                        lngEmptyRow = ThisWorkbook.Worksheets.Count
                        Call Range(Cells(lngEmptyRow, 1), Cells(Rows.Count, 1)).Clear
                        Call .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Copy( _
                            Destination:=Cells(lngEmptyRow, 1))
                        Cancel = True
                        Set objWorksheet = Nothing
                        Exit For
                    End If
                End With
            Next
        End If
    End If
End Sub

Das Makro reagiert auf den Doppelklick auf einen der Tabellennamen. Ich hoffe, ich habe dich dahingehend richtig verstanden.
Gruß
Nepumuk
Anzeige
AW: Problem Nr. 2:
02.08.2019 10:38:13
Strijbos
Hallo
ich wollte mich nochmal bedanken,
Deine Funktion ist klasse , konnte die Funktion aber damit nicht lösen.
Ich habe nun eine Lösung mit Index gefunden wo ich mir den Datensatz zusammensetätze.
Funktioniert gut.
Danke dir aber nochmal für Deine echt kasse Unterstützung
Excel ist einfach nur Geil
OT: Call-Anweisung
31.07.2019 12:52:44
{Boris}
Hi Max,
kannst Du mit nochmal in 1-2 Sätzen sagen, warum (und wann) Du gerne die Call-Anweisung nutzt?
VG Boris
AW: OT: Call-Anweisung
31.07.2019 14:01:23
Nepumuk
Hallo Boris,
ich rufe alle Sub-Methoden und Functions von denen ich keinen Rückgabewert erwarte mit Call auf. Schau dir mal im Objektkatalog die Close-Methode der Workbooks-Klasse an. Da siehst du dass es eine Sub ist.
Userbild
Gruß Max
Anzeige
OK, danke - verstanden!
31.07.2019 14:17:00
{Boris}
Hi Max,
von denen ich keinen Rückgabewert erwarte
Das erleichtert Dir letztlich also die Übersichtlichkeit / Nachvollziehbarkeit Deines Codes - richtig?
VG, Boris
AW: OK, danke - verstanden!
31.07.2019 16:06:05
Nepumuk
Hallo Boris,
für mich sollte Code nicht schwieriger zu lesen sein als die Zeitung mit den großen Buchstaben.
Gruß
Max
P.S. Herzliche Grüße an Familie und Walter.
;-))
31.07.2019 16:07:37
{Boris}
Hi Max,
danke! :-)
Grüße richte ich gerne aus!
VG, Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige