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

thisworkbook zu activeworkbook

thisworkbook zu activeworkbook
13.07.2016 11:20:50
Constantin
Hi,
Nepumuk hat mir dieses Macro geschrieben, ich bin erst vor ein paar Tagen dazu gekommen und es zu testen, leider konnte ich den Beitrag nicht mehr kommentieren und mich bedanken.
Funktioniert Super! Vielen Dank Nepumuk.
Ich hab jetzt nur noch eine Problem das ich nicht versteh kenne mich leider einfach nicht so super aus.
Ich möchte gerne den Code von meiner personal.xlxs auf das Aktuell geöffnete workbook ausführen. Ich schaf es einfach nicht bin zu blöd.
Hat jemand eine Idee ?
Der Code:

Option Explicit
Public Sub Delete_NO()
Dim objWorkbook As Workbook, objWorksheet As Worksheet
Dim objCell As Range
Dim lngRow As Long
Dim blnFound As Boolean
'Bildeschirmaktualisierung ausschalten
Application.ScreenUpdating = False
'Suche nach Mappe Itemnumber
For Each objWorkbook In Workbooks
If objWorkbook.Name = "Itemnumber.xlsx" Then
blnFound = True
Exit For
End If
Next
'Wenn die Mappe nicht gefunden wurde öffnen
If Not blnFound Then Set objWorkbook = Workbooks.Open( _
Filename:=ThisWorkbook.Path & "\Itemnumber.xlsx")
'Verweis auf die Tabelle setzen
Set objWorksheet = objWorkbook.Worksheets("Quiltlines (2ND)")
With ThisWorkbook.Worksheets("Inventory table (2ND)")
'Schleife über alle Zeilen in Spalte E von unten nach oben
For lngRow = .Cells(.Rows.Count, 5).End(xlUp).Row To 2 Step -1
'Wenn in der Zelle eine No steht
If .Cells(lngRow, 5).Value = "No" Then
'Suche in Mappe Itemnumber nach der Nummer
Set objCell = objWorksheet.Columns(2).Find( _
What:=.Cells(lngRow, 1).Value, LookIn:=xlValues, LookAt:=xlWhole)
'Wenn die Nummer nicht gefunden wurde
If objCell Is Nothing Then
'Lösche die Zeile
Call .Rows(lngRow).Delete
'Objekt zurücksetzen
Set objCell = Nothing
End If
End If
Next
End With
'Wenn die Mappe Itemnumber automatisch geöffnet wurde diese wieder schließen
If Not blnFound Then Call objWorkbook.Close(SaveChanges:=False)
'Objkete zurücksetzen
Set objWorkbook = Nothing
Set objWorksheet = Nothing
'Bildeschirmaktualisierung einschalten
Application.ScreenUpdating = True
End Sub

Vielen Dank

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: thisworkbook zu activeworkbook
13.07.2016 11:25:10
Claus
Warum kopierst Du das Makro nicht in das active Workbook?
Alternativ könntest Du, wenn der Name des gewünschten Workbooks immer der Gleiche ist, dieses suchen und anwählen, bevor Du das Makro laufen lässt...
Gruss
Claus

AW: thisworkbook zu activeworkbook
13.07.2016 12:08:31
Constantin
Weil ich das Macro jeden tag ausführen muss, und ich das umständlich finde extra den vba editor zu öffnen ein Modul zu erstellen und den Code hineinzukopieren.
Oder geht das mit dem Kopieren auch schneller, man kann ja immer was lernen.
Grüße
Constantin

Und 'ThisWorkbook' auf 'ActiveWorkbook' ...
13.07.2016 13:29:04
Luc:-?
…geändert fktioniert nicht, Constantin‽
Deshalb verwende ich ThisWorkbook nur, wenn's unbedingt erforderlich bzw garantiert immer unschädlich ist, denn wie schon die Bezeichnung sagt, bezieht es sich stets auf die StandortMappe des Pgms!
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: thisworkbook zu activeworkbook
13.07.2016 15:08:29
Constantin
Hi Luc,
ja das funktioniert jetzt so, ich weiß jetzt auch warum es nicht funktioniert hat.
Mir ladet es ja die itemnumber.xlsx wenn sie nicht geöffnet ist. Dadurch wird die Itemnumber.xls als active behandelt.
Kann ich die Inventory table(anderes excelfile) irgendwie auf activ setzen nach dem laden der Itemnumber.xls
Vielen Dank

Workbooks("Inventory table").Activate --owT
13.07.2016 15:12:09
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige