Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Excel VBA: Cells Z, S vs Range SZ bzw.Range S1Z1 S2Z2 vs SZ bzw. S1Z1 S2Z2

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Materialien für den 3D-Druck im Hochtemperaturbereich, eine Pressemitteilung
Autor Thema:  Excel VBA: Cells Z, S vs Range SZ bzw.Range S1Z1 S2Z2 vs SZ bzw. S1Z1 S2Z2 (190 / mal gelesen)
ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 382
Registriert: 05.12.2012

Win 10 64bit
Office 2019

erstellt am: 09. Dez. 2024 14:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Gemeinde, hallo Klaus,

im Moment ist für mich ein Antworten im Original-Thread nicht möglich, da sich - wahrscheinlich auf Grund der "Sonderzeichen" ()[]: im Thread-Titel - immer eine sucuri-Website-Firewall einklinkt ... da wird wohl vermutet, ich wolle per Link irgendwelchen Schadcode ausführen ... keine wirkliche Ahnung davon ... also, auf Grund dessen habe ich diesen neuen Thread zum gleichen Thema ohne Sonderzeichen im Titel gestartet.

Er schließt sich nahtlos an diesen letzten Post in diesem Thread an.

Als Erstes noch einmal zum Thema "Office 365 aber Excel 2019": ein Missverständnis meinerseits, bei uns läuft das komplette Office unter jeweils einer Version ... die meisten Rechner mit 2019, die aktuell neu aufgesetzten mit 2021. Der Office365-Anteil bezieht sich ausschließlich auf Teams, SharePoint und das gemeinsam genutzte Adressbuch.

Und als Zweites ein paar "neue" Erkenntnisse zur Verwendung der drei Schreibweisen:

Beim Kopieren eines Zellbereichs aus einer anderen, geöffneten Mappe (per Makro, das aus der Zieldatei heraus gestartet wurde), funktioniert die folgende Schreibweise NICHT, sondern führt zu einem 1004-Fehler:

Code:
Workbooks("Quellmappe.xlsm").Worksheets("Quelltab").Range(Cells(1, 1), Cells(41, 7)).Copy Sheets("Zieltab").Cells(1, 1)

(und beim Einfügen dieses Code-Schnipsels fällt mir auf, dass aktuell die html dieser Beitrag-Erstellungs-Webseite zerschossen/beeinträchtigt scheint: die links von diesem Texteingabefenster platzierte Überschrift "Beitrag:" und die darunter platzierten Formatierungs-Links von "Fachbegriff" bis "Code" und auch die Inhalte der beiden darunter befindlichen Teilfenster "System-Info / Zusatztext" und "Optionen" sind (in-/)übereinander verschoben)

Die folgende Schreibweise dagegen funktioniert:

Code:
Workbooks("Quellmappe.xlsm").Worksheets("Quelltab").Range("A1:F41").Copy Sheets("Zieltab").Cells(1, 1)

Grüße  
Gernot

PS: der Doppelpunkt scheint es im alten Thread-Titel schon mal nicht gewesen zu sein ... im neuen Titel habe ich einen übersehen  ... dann tippe ich mal auf die eckigen Klammern als Teil der kurzen Range-Schreibweise

[Diese Nachricht wurde von ArCADe-Spieler am 09. Dez. 2024 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 400
Registriert: 11.08.2007

erstellt am: 12. Dez. 2024 10:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hi Gernot,

bei deinem 1. Code muss auch für Cells(...) jeweils der Bezug zum Workbook/Worksheet gesetzt werden, denn Zellbezeichnungen ohne Bezug sind generell immer auf das aktive Tabellenblatt ausgerichtet und das ist in diesem Fall ein Widerspruch, da sich die Zellen ja in dem anderen Workbook/Worksheet befinden. So sollte es aber keinen Laufzeitfehler geben

Code:
With Workbooks("Quellmappe.xlsm").Worksheets("Quelltab")
    .Range(.Cells(1, 1), .Cells(41, 7)).Copy Sheets("Zieltab").Cells(1, 1)
End With

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 400
Registriert: 11.08.2007

Win 10 Pro, Office 97 bis Office 2016

erstellt am: 12. Dez. 2024 10:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hi Gernot,

bei deinem 1. Code muss auch für Cells(...) jeweils der Bezug zum Workbook/Worksheet gesetzt werden, denn Zellbezeichnungen ohne Bezug sind generell immer auf das aktive Tabellenblatt ausgerichtet und das ist in diesem Fall ein Widerspruch, da sich die Zellen ja in dem anderen Workbook/Worksheet befinden. So sollte es aber keinen Laufzeitfehler geben

Code:
With Workbooks("Quellmappe.xlsm").Worksheets("Quelltab")
    .Range(.Cells(1, 1), .Cells(41, 7)).Copy Sheets("Zieltab").Cells(1, 1)
End With

Bis später,
Karin

PS: ich hatte diesen Beitrag bereits 1 mal abgeschickt, aber er wird nicht angezeigt und löschen kann ich ihn auch nicht mehr. Entscghuldigung, falls er 2 mal vorhanden ist

[Diese Nachricht wurde von Beverly am 12. Dez. 2024 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 382
Registriert: 05.12.2012

Win 10 64bit
Office 2019

erstellt am: 12. Dez. 2024 12:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Beverly Karin,

vielen Dank für Deinen Hinweis. Leider komme ich nur sehr sporadisch dazu, an diesem Projekt weiter zu programmieren (der "ganz normale Wahnsinn" als Techniker/Konstrukteur wirft mir da immer wieder - und besonders gern so kurz vor dem Jahresende - sehr gekonnt Steine in den Weg  ), und habe ihn daher bis jetzt noch nicht ausprobieren können.

ABER: da ich tatsächlich noch das Kopieren von "errechneten" Zellbereichen an "errechnete" Einfügepositionen vor mir habe, ist mir Dein Tip 10 Unities und gute Wünsche für die kommenden Feiertage wert  ... sowas in Range("SZ")-Schreibweise sowohl für die Spalten als auch für die Zeilen hinzufrickeln hätte schon seine ganz eigenen Tücken.

Grüße
Gernot

[Edit1] Name korrigiert

[Edit2]

und nachdem ich jetzt Deine beiden Posts mehrmals gelesen und verdaut habe: für den Bezug von Cells ist der Punkt davor notwendig, und könnte ich dann den Zieltab weglassen?

etwa so:

Code:
With Workbooks("Quellmappe.xlsm").Worksheets("Quelltab")
    .Range(.Cells(1, 1), .Cells(41, 7)).Copy Cells(1, 1)
End With

oder würde vielleicht sogar das hier funktionieren?:

Code:
Workbooks("Quellmappe.xlsm").Worksheets("Quelltab").Range(.Cells(1, 1), .Cells(41, 7)).Copy Cells(1, 1)

[Diese Nachricht wurde von ArCADe-Spieler am 12. Dez. 2024 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2823
Registriert: 02.05.2006

Office 2010; Office365
Visual Basic

erstellt am: 13. Dez. 2024 13:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hallo Gernot,
Wie Karin schon richtig geschrieben hat, brauchen die Zellen Zuordnungsobjekte, weshalb sie dies in die WITH-Anweisung gepackt hat.
Das erste Beispiel (ohne Zieltabelle) kann funktionieren wenn die Zieltabelle das aktive Tabellenblatt ist
Dein Versuch mit
Code:
Workbooks("Quellmappe.xlsm").Worksheets("Quelltab").Range(.Cells(1, 1), .Cells(41, 7)).Copy Cells(1, 1)

Wird nicht funktionieren da .Cells keinen Bezug hat. Ohne With Anweisung wäre das eine sehr lange Zeile:

Code:

Workbooks("Quellmappe.xlsm").Worksheets("Quelltab").Range(_
Workbooks("Quellmappe.xlsm").Worksheets("Quelltab").Cells(1, 1), _
Workbooks("Quellmappe.xlsm").Worksheets("Quelltab").Cells(41, 7))_
.Copy Cells(1, 1)

Aber teste doch einfach mal selbst 
Grüße
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 400
Registriert: 11.08.2007

erstellt am: 13. Dez. 2024 14:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hi Gernot, Hi Klaus,

die Codezeile

Code:
Workbooks("Quellmappe.xlsm").Worksheets("Quelltab").Range(.Cells(1, 1), .Cells(41, 7)).Copy Cells(1, 1)

wird NIE funktionieren sondern einen Fehler auslösen, weil die Punkte vor Cells IMMER einen Bezug haben MÜSSEN, was man mittels einer With-Anweisung realisiert (wie in meinem vorhergehenden Beitrag ausgeführt).
Ohne Punkt vor Cells, also on dieser Form

Code:
Workbooks("Quellmappe.xlsm").Worksheets("Quelltab").Range(Cells(1, 1), Cells(41, 7)).Copy Cells(1, 1)


löst der Code zwar keinen Fehler aus, würde aber den Bereich vom gerade aktiven Tabellenblatt kopieren, aber auch NUR dann, wenn die angesprochene Arbeitsmappe - also "Quellmappe.xlsm" - die aktive ist. Ist eine andere Arbeitsmappe die aktive, dann löst der Code ebenfalls einen Fehler aus.

Bis später,
Karin

[Diese Nachricht wurde von Beverly am 13. Dez. 2024 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2823
Registriert: 02.05.2006

Office 2010; Office365
Visual Basic

erstellt am: 13. Dez. 2024 15:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hallo Gernot,
Was ich ganz gerne mache bei Tabellen in verschiedenen Arbeitsblättern, ich definiere mir Stellvertretervariablen:
Code:

  Dim xWS_Q As Worksheet
  Set xWS_Q = Workbooks("Quellmappe.xlsm").Worksheets("Quelltab")

  Dim xWS_Z As Worksheet
  Set xWS_Z = ActiveWorkbook.Sheets("Zieltab")

  ' und somit fürs kopieren:
  xWS_Q.Range(xWS_Q.Cells(1, 1), xWS_Q.Cells(41, 7)).Copy xWS_Z.Cells(1, 1)


Grüße
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 382
Registriert: 05.12.2012

Win 10 64bit
Office 2019

erstellt am: 16. Dez. 2024 12:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ihr zwei,

vielen Dank für die umfangreichen Erläuterungen (daher 10 Unities auch an Dich, Klaus). Da geht es ganz offensichtlich um ganz grundlegende Grundlagen   von Excel VBA ... die ich bislang noch nicht erlernt habe. Ich habe mir zwar vor Längerem Michael Koflers "Excel programmieren 2016" gekauft und auch angefangen, es zu lesen, aber leider wird dort kaum auf solche grundlegenden Sachen eingegangen ... sie werden wohl als bereits bekannt vorausgesetzt, wenn sich jemand an "die höheren Weihen" heranwagt. Ich hatte mich hier zwar schon zweimal für einen Volkshochschulkurs zu den Grundlagen von Excel VBA eingeschrieben, die sind aber beide mangels Teilnehmern nicht durchgeführt worden.

Falls Ihr also Tips für gute, wirklich Grundlagen-Literatur zum Thema habt: nur her damit ... es frustriert mich selbst, wenn ich an solchen Basics scheitere.

Wie bereits geschrieben, komme ich aktuell leider nicht dazu, irgendetwas auszuprobieren - auch diese Antwort klimpere ich nur schnell in der Mittagspause in die Tastatur.

Euch schöne Feiertage
Gernot 

[Edit1] was mir gerade eben erst so richtig bewusst wird: anscheinend funktioniert der Bezug auf das vorher angesteuerte Tabellenblatt (Quell-Sheet in der Quell-Mappe) bei der Range("S1Z1:S2Z2")-Schreibweise direkt, ohne die - mir sehr sperrig erscheinende - Herstellung einer Zuweisung per With-Konstrukt bei der Variante Range(.Cells(Z1,S1), .Cells(Z2,S2)) ... hm, das spricht für mich wieder mehr für die Verwendung der ersten Schreibweise ... auch, weil ich tatsächlich doch nur die jeweiligen Zeilen "errechnen" muss und die Spalten fix zugeordnet sind ... sollte sich ja mit Range("S1" & ZeilenRechenwert1 & ":S2" & ZeilenRechenwert2) doch deutlich einfacher realisieren lassen, als befürchtet

[Diese Nachricht wurde von ArCADe-Spieler am 16. Dez. 2024 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 400
Registriert: 11.08.2007

erstellt am: 16. Dez. 2024 14:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hi Gernot,

Zitat:
Original erstellt von ArCADe-Spieler:

[Edit1] was mir gerade eben erst so richtig bewusst wird: anscheinend funktioniert der Bezug auf das vorher angesteuerte Tabellenblatt (Quell-Sheet in der Quell-Mappe) bei der Range("S1Z1:S2Z2")-Schreibweise direkt, ohne die - mir sehr sperrig erscheinende - Herstellung einer Zuweisung per With-Konstrukt bei der Variante Range(.Cells(Z1,S1), .Cells(Z2,S2)) ... hm, das spricht für mich wieder mehr für die Verwendung der ersten Schreibweise ... auch, weil ich tatsächlich doch nur die jeweiligen Zeilen "errechnen" muss und die Spalten fix zugeordnet sind ... sollte sich ja mit Range("S1" & ZeilenRechenwert1 & ":S2" & ZeilenRechenwert2) doch deutlich einfacher realisieren lassen, als befürchtet


Das siehst du nicht ganz richtig: diese Schreibweise ist für dich als weniger versierter Anwender sicher einfacher 1. zu schreiben und 2. auch nachzuvollziehen/zu verstehen und sie ist auch keineswegs falsch, hat aber auch so ihre Nachteile, wenn du mit variablen Zeilen und insbesondere variablen Spalten agierst. Dabei musst du den Code nämlich zuvor dahingehend ergänzen, dass du zuerst die numerisch ermittelte Spaltennummer in den betreffenden Spaltenbuchstaben übersetzen musst - das vergisst du nämlich, wenn du einfach Range(Spaltenbuchstabe1Zeilennumer1:Spaltenbuchstabe2Zeilennumer2) siehst. Diese Übersetzung ist bei der Schreibweise Cells(Zeilennummer, Spaltennummer) ganz und gar nicht erfoderlich, weil alle Angaben - sowohl für Spalte als auch Zeile - numerisch sind. Anschließend muss Excel intern wiederum die Schreibweise Range(Spaltenbuchstabe1Zeilennummer1:Spaltenbuchstabe2Zeilennummer2) intern in die Schreibweise Range(Cells(Zeilennumer1, Spaltennummer1), Cells(Zeilennummer2, Spaltennumer2)) übersetzen. Sicher macht diese Umrechnung bei kurzen Codes kaum einen zeitlichen Unterschied, bei größeren Projekten dagegen, kann sich das durchaus zeitlich negativ auswirken.

Bis später, Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ArCADe-Spieler
Mitglied
Metallbautechniker


Sehen Sie sich das Profil von ArCADe-Spieler an!   Senden Sie eine Private Message an ArCADe-Spieler  Schreiben Sie einen Gästebucheintrag für ArCADe-Spieler

Beiträge: 382
Registriert: 05.12.2012

Win 10 64bit
Office 2019

erstellt am: 18. Dez. 2024 12:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Karin,

ach ja, stimmt, da war ja was ... der Grund, diesen bzw. den Vorgänger-Thread überhaupt zu starten, waren ja genau die bis zum Stillstand bzw. sogar Absturz von Excel immer länger gewordenen Abarbeitungszeiten der Makros genau wegen der drei verschiedenen Schreibweisen für Zellzugriffe bzw. Range-Beschreibungen 

Also muss ich mich wohl doch mit der With-Methode "anfreunden"  ... nur dass mir die irgendwie unhandlich vorkommt und daher nicht wirklich "gefällt" 

Irgend welche Literatur-Tips zum Thema VBA-Grundlagen ... also wirklich die Basics?

Schöne Feiertage und guten Rutsch, "sehe" Euch im Januar wieder
Gernot

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2823
Registriert: 02.05.2006

Office 2010; Office365
Visual Basic

erstellt am: 18. Dez. 2024 12:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von ArCADe-Spieler:
Da geht es ganz offensichtlich um ganz grundlegende Grundlagen    von Excel VBA ... die ich bislang noch nicht erlernt habe. ...

Falls Ihr also Tips für gute, wirklich Grundlagen-Literatur zum Thema habt: nur her damit ... es frustriert mich selbst, wenn ich an solchen Basics scheitere.



Hallo Gernot,
Nicht verzweifeln, wir haben alle mal angefangen, auch wenn es bei mir schon über 40 Jahre her war (Basic auf Commodore 32). Damals gabe es noch kein Internet oder Foren (die kamen erst so ab ca. 1990, naja eigentlich 1980, Usenet, aber da hatten nur ausgewählte Personen Zugang). Damals gab es noch sehr ausführliche Bücher mitgeliefert, die das Einarbeiten vereinfacht haben.

Zugegeben, heute ist das deutlich umfangreicher. Da muß man sich erst mit den ganzen Objektmodellen (egal ob bei Excel oder Autocad) beschäftigen aber man hat auch die Möglichkeit über das Internet schnell Hilfe zu bekommen. Aber ich empfehle meinen Mitarbeitern immer sich einfach mal die Ersten Schritte durchzulesen, die gibt es bei Microsoft oder auch bei Autocad (leider nur in Englisch).

Literatur zum Kaufen gibt es maßenweise, vom Kofler stehen auch zwei Bücher im Regal (Access Datenbankprogrammierung). Aber ehrlich, ganz durchgearbeitet habe ich die nie. Einzelne Kapitel mal zum nachlesen wie es sein könnte - ja, der Rest dann try-and-error oder F1 (Hilfe).

Also nicht verzweifeln. Und zur Not hast Du ja das Forum hier 

Schöne Feiertage
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 400
Registriert: 11.08.2007

erstellt am: 18. Dez. 2024 13:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für ArCADe-Spieler 10 Unities + Antwort hilfreich

Hi Gernot,

mit Literatur kann ich dir leider nicht dienen - mein Wissen stammt in erster Linie aus den verschiedenen Excel-Foren, indem ich dort selbst Fragen gestellt, aber auch Beispiele anderer Fragesteller versucht habe zu verstehen und nachzubauen.

Was die With-Anweisungen betrifft, so ist sie an und für sich gar nicht so schwer, man muss nur das Prinzip verstehen, wie die Objekte in Excel aufgebaut sind - und zwar hierarchisch in verschiedenen Ebenen, wobei zuerst die oberste Hierarchie/Ebene logischerweise als 1. angesprochen wird und danach die jeweils nächste tiefere, wobei ALLE untergeordneten Ebenen durch das Voransetzen eines Punktes (.) an die jerweils übergeordnete Ebene gebunden werden. Ans Ende jeder Ebene einer With-Anweisung gehört dann noch die Zeile End With, damit Excel weiß, das sich alles danach nicht mehr auf den Teil nach der Zeile With... bezieht. Wenn man dazu noch den Cdeo strukturiert schreibt, kann man auch optisch besser nachvollziehen wo eine Ebene der with-Anweisung beginnt und wo sie endet.

Hier mal ein simples prinzipielles Beispiel mit 2 Ebenen:

Code:
'Anfang der With-Anweisung - 1. Ebene
With Workbooks("Arbeitsmappe.xlsm")  '<== alles bezogen auf die genannte Arbeitamappe
    ' Anfang der With-Anweisung 2. Eben
    With .Worksheets("Tabelle1")      '<== alles bezogen auf Tabelle1 in ganz oben genannten Arbeitsmappe
        .Range("A2") = Date          '<== in A2 im o.g. Tabellenblatt der ganz oben genannten Arbeitsmappe das aktuelle Datum eintragen
    ' Ende der With Anweisung 2. Ebene
    End With
' Ende der With-Anweisung 1. Ebene
End With

Vielleicht hilft dir das ja schon ein wenig beim Verstehen.

Bis später, Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz