Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro verhält sich in Tabelle anders als in Modul

Makro verhält sich in Tabelle anders als in Modul
12.09.2007 16:04:00
Dan
Hallo zusammen,
heute stoße ich aus ein Kuriosum bei dem ich Eure Hilfe benötige.
Wenn ich nachstehende Code in Tabelle1 einfüge, funktioniert der mittlere Teil nicht mehr wirklich. So wird weder die erste freie Zeile markiert, noch wird in der MsgBox die richtige Zeilennummer angezeigt.
Danach erfolgt das Einfügen der zuvor definierten Daten ab der >vorher Sobald ich den Code in einem seperatem Modul laufen lasse, funktioniert alles wie es soll...
Könnt Ihr mir sagen wo die Ursache zu suchen ist?
Gruß vom Dan
Option Explicit
Dim name1, adresse, ansprech, telefon, typ, nummer, monat, techniker As String
Dim letztezeile As Long

Sub CommandButton_Eingabe_Click()
name1 = Worksheets("Tabelle1").Range("B4").Value
adresse = Worksheets("Tabelle1").Range("B5").Value
ansprech = Worksheets("Tabelle1").Range("B6").Value
telefon = Worksheets("Tabelle1").Range("B7").Value
typ = Worksheets("Tabelle1").Range("B10").Value
nummer = Worksheets("Tabelle1").Range("B11").Value
monat = Worksheets("Tabelle1").Range("B14").Value
techniker = Worksheets("Tabelle1").Range("B15").Value
On Error Resume Next
Worksheets("Tabelle2").Activate
letztezeile = Range("A3:H38").Find("*", searchdirection:=xlPrevious).Row
Range("A" & letztezeile + 1, "H" & letztezeile + 1).Activate
MsgBox letztezeile + 1
ActiveCell.Value = name1
ActiveCell.Offset(0, 1).Value = adresse
ActiveCell.Offset(0, 2).Value = ansprech
ActiveCell.Offset(0, 3).Value = telefon
ActiveCell.Offset(0, 4).Value = typ
ActiveCell.Offset(0, 5).Value = nummer
ActiveCell.Offset(0, 6).Value = monat
ActiveCell.Offset(0, 7).Value = techniker
End Sub


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro verhält sich in Tabelle anders als in Mo
12.09.2007 16:22:00
Worti
Hallo an,
du solltest die Tabelle beim ansprechen qualifizieren, zB. so:
On Error Resume Next
Worksheets("Tabelle2").Activate
letztezeile = Worksheets("Tabelle2").Range("A3:H38").Find("*", searchdirection:=xlPrevious).Row
Worksheets("Tabelle2").Range("A" & letztezeile + 1, "H" & letztezeile + 1).Activate
MsgBox letztezeile + 1
Gruß Worti

AW: Makro verhält sich in Tabelle anders als in Mo
12.09.2007 16:30:00
Dan
Hallo Worti,
habe die Einträge entsprechend geändert, funktioniert jetzt auch wie gewollt. Besten Dank!
Was mich nur nach wie vor wundert: Dass der gleiche Code sich in unterschiedlichen Umgebungen anders verhält...
Hast Du dafür vielleicht auch noch 'ne Erklärung?
Gruß zurück!

Anzeige
AW: Makro verhält sich in Tabelle anders als in Mo
12.09.2007 20:17:00
Daniel
Hi
also meine Vermutung, warum die Jungs in Seattle das so umgestzt haben (sie hätten es natürlich auch anders machen können)
wenn der Code im allgemeinen Modul steht, dann ist er an kein bestimmtes Sheet gebunden.
Zellbezüge ohne Sheet-Angabe beziehen sich daher immer auf gerade aktive Sheet.
Code, der im Modul einer Tabelle steht, ist durch diese Tatsache schon fest an diese Tabelle gebunden, daher beziehen sich Zellbezüge ohne Sheetangabe immer auf dieser Tabelle, zu der sie ja gehören.
das wird wohl die Logik dahinter sein.
man hätte es auch anders machen können, aber ganz unsinnig finde ich es nicht (wenn man es weiß)
Gruß Daniel
das gleiche Aktionen in unterschiedlicher Umgebung unterschiedliche Reaktionen hervorrufen, ist eigentlich nichts besonders.
Überhol mal ne Polizeistreife mit 200 km/h auf der freien Autobahn und versuch gleiches mal in der 30er Zone vorm Kindergarten.

Anzeige
AW: Makro verhält sich in Tabelle anders als in Mo
12.09.2007 16:26:25
Renee
Hi Dan,
Das ist doch offensichtlich:
All Deinen Range(... Objekte fehlt die Referenzierung, sprich:
In einem Modul werde die Ranges der Tabelle2 angesprochen, weil diese zuvor aktiviert wird.
In der Tabelle1 hingegeben beziehen sich die Referenzierungen auf eben diese Tabelle.
Arbeite Dich durch diesen Link und dann wirf Deine Activate weg.
Greetz Renee

AW: Makro verhält sich in Tabelle anders als in Mo
12.09.2007 16:33:29
Dan
Hallo Renee,
OK, das macht so Sinn... Wie schon in der anderen Antwort beschrieben, habe ich den Code mittlerweile entsprechend angepasst - es läuft jetzt also alles wie gewollt.
Der Link sieht recht vielversprechend aus, werde mir die Seite nachher mal in Ruhe durchlesen...
Auf jeden Fall vielen Dank!
Gruß vom Dan
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige