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

VBA Index außer d. gültigen Bereichs

VBA Index außer d. gültigen Bereichs
09.01.2019 13:04:27
Holger
Hallo mal wieder,
ich habe einen Code (wird per Schaltfläche ausgelöst),
der den Inhalt eines Blattes einer Datei
in eine andere Datei auf ein definiertes Blatt kopiert.
Wichtig ist mir dabei, dass die Zeilen- und Spalteneigenschaften (Breiten,Höhen)
übernommern werden.
Der Code scheint eine Macke zu haben, denn er funktioniert leider nur willkürlich.
Finde leider kein vergleichbares Beispiel in den Recherchen zur Fehlerbehebung.
Fehlermeldung: Sie Betreff.
Beim Debuggen wird Zeile 12 Markiert
Kann mir jemand bitte erklären, woran es in meinem Fall liegt?

1 Sub Übertrage_Daten()
2 '
3 ' Übertrage_Daten Makro
4 ' Überträgt Daten der Datei "LNW Mitarbeiter", Mappe "gehe 2 nach links"
5 ' in das Ziel:
5 ' Datei: "  1 - Abrechnung LNW blanko "
6 ' Blatt: "  LNW Gesamt "
7 '
9   Worksheets(ActiveSheet.Index - 2).Select
10  Cells.Select
11  Selection.Copy
12  Windows("1 - Abrechnung LNW blanko.xlsm").Activate    '

Ich möchte ungern mit Dateipfaden arbeiten, da sich dieser schnell ändern kann.
Vielleicht helfende Hinweise:
-Während der Bearbeitung sind nur 2 Dateien offen
(1x LNW Mitarbeiter , 1x Abrechnungsdatei)
eine automatische Öffnung wird daher nicht benötigt
-

Worksheets(ActiveSheet.Index - 2).Select
wollte ich mit Absicht,
da der Blattname sich ständig ändert.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Richtiger Code
09.01.2019 13:07:24
Holger
Kleiner Fehler bei der Darstellung des Codes
Hier der Richtige
Option Explicit
Sub Übertrage_Daten()
' Übertrage_Daten Makro
' Überträgt Daten der Mappe "2 nach links" in
' Datei: "  1 - Abrechnung LNW blanko "
' Blatt: "  LNW Gesamt "
Worksheets(ActiveSheet.Index - 2).Select
Cells.Select
Selection.Copy
Windows("1 - Abrechnung LNW blanko.xlsm").Activate       'Debugger Marke
Worksheets("LNW Gesamt").Activate
Cells.Select
ActiveSheet.Paste
Range("J11").Select
Application.CutCopyMode = False
Selection.Copy
Application.CutCopyMode = False
End Sub

Anzeige
AW: Richtiger Code
09.01.2019 13:32:42
Rudi
Hallo,
Worksheets(ActiveSheet.Index - 2).Select
ist Unsinn. Wenn du Blatt 1 oder 2 aktiv hast, verursacht das einen Fehler.
Gruß
Rudi
AW: Richtiger Code
09.01.2019 13:50:15
Holger
Gruß Rudi!
Worksheets(ActiveSheet.Index - 2).Select soll nicht heißen aktiviere Blattname "2" oder "1"
Sondern : Gehe vom aktiven Sheet "Übertragen" zwei nach links
In "Übertragen" befindet sich der Button mit Makro
Das Makro soll zwei Blätter nach links gehen und den Inhalt kopieren
Userbild
Gruß
siehe UweD. owT
09.01.2019 13:54:56
Rudi
AW: Richtiger Code
09.01.2019 13:33:27
UweD
Hallo
dein ganzer Code kann durch diese eine Anweisung ersetzt werden
        ActiveWorkbook.Worksheets(ActiveSheet.Index - 2).Cells.Copy _
            Workbooks("1 - Abrechnung LNW blanko.xlsm").Sheets("LNW Gesamt").Cells

Ich würde aber noch eine Prüfung drumherum bauen, ob auch ein Blatt 2 weiter vorne existiert.
    If ActiveSheet.Index > 2 Then
        ActiveWorkbook.Worksheets(ActiveSheet.Index - 2).Cells.Copy _
            Workbooks("1 - Abrechnung LNW blanko.xlsm").Sheets("LNW Gesamt").Cells
    End If

LG UweD
Anzeige
AW: Index außerhalt
09.01.2019 14:14:59
Holger
Hallo Uwe
Doch so schlimm ja ? x-D
Es werden mit der Zeit defintiv mehrere Blätter, da ja forlaufende
Fehlermeldung bleibt, aber erhalten
Gruß
AW: Index außerhalt
09.01.2019 14:28:18
UweD
Sind beide Dateien offen?
AW: Index außerhalt
09.01.2019 14:33:29
Holger
Ja sind beide offen
AW: Index außerhalt
09.01.2019 14:36:49
UweD
bei mir klappt es Problemlos.
Dann bitte Beispieldateien hochladen
AW: Index außerhalt
09.01.2019 14:51:19
Holger
Leistungsnachweis Mitarbeiter:
Name: "3 - LNW Mitarbeiter blanko"
https://www.herber.de/bbs/user/126601.xlsm
Im Blatt "Übertragen" ist der Button
Zieldatei:
Name "1 - Abrechnung LNW blanko"
https://www.herber.de/bbs/user/126600.xlsm
Ich schreibe gerade an einem PC mit Office 2010
An meinem Arbeitsplatz habe ich 2013er
könnte das vielleicht eine Rolle spielen ?
Gruß und Danke!
Anzeige
AW: Index außerhalt
09.01.2019 15:35:28
UweD
Hallo nochmal
Ich habe die beiden Dateien unter den angegebenen Namen abgespeichert und dann Beide geöffnet.
In der Datei "3 - LNW Mitarbeiter blanko" war MEIN Code NICHT drin.
Den habe ich reinkopiert
Sub Übertrage_Daten()

    If ActiveSheet.Index > 2 Then
        ActiveWorkbook.Worksheets(ActiveSheet.Index - 2).Cells.Copy _
            Workbooks("1 - Abrechnung LNW blanko.xlsm").Sheets("LNW Gesamt").Cells
    End If
End Sub
und dem Button zugeordnet
Wenn ich dann den Button drücke und mir dann das Blatt "LNW Gesamt"
in der Datei "1 - Abrechnung LNW blanko" ansehe,
sieht das so aus..
Userbild
Klappt also.
LG UweD
Anzeige
AW: Aha auslöser gefunden evtl
09.01.2019 15:57:25
Holger
Wenn ich beide Dateien in einem Ansichtsfenster öffne, funktioniert es auch bei mir.
Öffne ich aber erst bspw "1 - Abrechnung LNW blanko" und die andere über den Weg
Excel 2010 starten-> Datei -> öffne Datei -> "3 - LNW Mitarbeiter blanko"

um beide Dateien zeitgleich auf dem Monitor zu haben,
kommt die besagte Fehlermeldung Index etc
Ist das Problem lösbar?
da bin ich überfragt. OFFEN
09.01.2019 16:08:01
UweD
VBA Problem: verursacht durch 2 Ansichtsfenster
09.01.2019 17:42:47
Holger
Hallo an alle!
Ein VBA-Code funktioniert nicht, wenn ich die sich beziehenden Excel-Dateien in 2 Ansichtsfenster öffne.
1. Datei: per Doppelklick öffnen
2. Datei: Excel 2010 starten, Datei, Öffnen : Datei 2 auswählen
Userbild
Erst, wenn ich beide Dateien in einem ExcelFenster öffne, funktioniert der code einwandfrei.
Userbild
Den VBA-Code findet man unter:
https://www.herber.de/cgi-bin/callthread.pl?index=1666834
Anzeige
AW: VBA Problem: verursacht durch 2 Ansichtsfenster
10.01.2019 18:36:10
Mullit
Hallo,
der Grund ist klar, das Problem ist das Fensterhandling der versch Excel-Versionen, Du versuchst in xl2010 das SDI (zur Erklärung, Links s.u.) von xl2013 nachzustellen, indem Du eine zweite Excel-Instanz öffnest.
In xl2010 gibt's aber nur das MDI, d.h., wenn Du vor dem Öffnen der Datei eine zweite Instanz öffnest, hast Du zwei versch. Applications geöffnet, das kannst Du im Taskmanager erkennen, da sind zwei Einträge 'EXCEL.EXE' in der Prozessliste vorhanden.
Im Gegensatz hierzu wird in xl2013 nur eine Instanz erstellt, auch wenn aufgrund des SDI zwei Dateien in zwei Fenstern dargestellt werden.
Das hat zur Folge, daß die jeweils zweite Arbeitsmappe in Deinem Code in der Workbooks-Aufzählung der ersten Application nicht mehr vorhanden ist, sondern nur in der zweiten Application und umgekehrt und somit im Code nicht mehr erkannt wird.
Beide Arbeitsmappen werden also in versch. Applications geöffnet, Dein Code spricht nur eine App. an, aber beide Workbooks...böse Falle...!
http://msdn.microsoft.com/de-de/library/office/dn251093.aspx
http://riptutorial.com/excel-vba/example/14030/single-document-interface-versus-multiple-document-interfaces
Gruß, Mullit
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige