Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Tabellen Anzahl Zeilen übernehmen

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
Autor Thema:  Tabellen Anzahl Zeilen übernehmen (4919 mal gelesen)
Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 22. Jan. 2013 16: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

Hallo zusammen,

in einer "Mappenname.xlsm" habe ich auf dem Tabellenblatt "Register1" eine excel-Tabelle1, welche so aussieht:

Auftrag1  Breite1  Höhe1  Gewicht1 
Auftrag2  Breite2  Höhe2  Gewicht2 
Auftrag3  Breite3  Höhe3  Gewicht3 

Diese Tabelle ist dynamisch, so dass sich beim anlegen weiterer Aufträge (Auftrag4, Auftrag5, ...) die Anzahl ihrer Zeilen automatisch erhöht.
Auf dem Tabellenblatt "Register2" befindet sich eine excel-Tabelle2, welche sich auf die erste Tabelle bezieht. Die erste Spalte ist in Überschrift und Eintragungen (Auftrag1, -2, -3, ...) gleich. Die Art und Anzahl der weiteren Spalten unterscheidet sich jedoch, so dass diese zweite Tabelle etwa so aussieht:

Auftrag1  Name1  Straße1  Ort1  Telefon1
Auftrag2  Name2  Straße2  Ort2  Telefon2
Auftrag3  Name3  Straße3  Ort3  Telefon3

Nun möchte ich es gerne so einrichten, dass die Tabelle2 die Anzahl ihrer Zeilen an die Tabelle1 anpasst, also dass beide Tabellen immer die gleiche Anzahl Zeilen haben. Bis jetzt sehe ich 2 Ansätze:

1) Die Anzahl der Zeilen von Tabelle1 lässt sich über die Funktion "=zeilen()" ermitteln. Leider weiß ich nicht, wie ich der Tabelle2 diesen Wert übergeben kann.
2) Es gibt die Funktion "=bereich.verschieben()". Hierzu habe ich mir einige Beispiele angeschaut, welche sich aber alle auf demselben Tabellenblatt (Register) abgespielt haben. Ist mit dieser Funktion ein arbeiten über mehrere Tabellenblätter hinweg möglich?

bis auf weiteres und Dank im Vorraus, Ingo 

------------------
"Umwege erhöhen die Ortskenntnisse!"

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

Paulchen
Mitglied
Bauing./SW-Entwickler


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

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 22. Jan. 2013 16:41    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 Ingo Struck 10 Unities + Antwort hilfreich

Hallo Ingo,

z. T. klingt das, was Du beschreibst, eher nach Datenbank als nach Tabellenkalkulation, aber gut  .

=Zeilen() sagt mir nichts; da es sich dabei um einen Formel handelt, mach' folgendes: Tippe "=zeilen(" - natürlich ohne die "" - und klicke mit der Maus in Dein Register 1. Dort wählst Du den gewünschten Bereich aus.

Die allermeisten Formeln können ohne Weiteres registerübergreifend arbeiten, in der Formel heißt es dann "... Register 1!...".

------------------
DIN1055.de  |  Lastannahmen für Anwender

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

Thomas Harmening
Moderator
Arbeiter ツ




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

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 22. Jan. 2013 18:25    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 Ingo Struck 10 Unities + Antwort hilfreich

woher weiss Register2 Name1  Straße1  Ort1  Telefon1 das es mit  Register1 Auftrag1 v3erknüpft sein soll 
existiert da noch ein Blatt welches Auftrag 1, (2), (3) ist...

=zeile() gibt einfach nur den Bezug zurück in der die Formel steht und nicht  <Die Anzahl der Zeilen>...

eventuell reicht auch =WENN(Tabelle1!A1<>"";Tabelle1!A1;"") und runterkopieren?

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 23. Jan. 2013 08:50    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 zusammen,

@Paulchen: Die Bemerkung mit der Datenbank ist sicher richtig und hier im Forum auch schon oft genug diskutiert worden. Allerdings habe ich für meine Aufgabe halt lediglich Excel 2010 zu verwenden. Damit bekomme ich dann meine Aufgaben gelöst oder auch nicht  . Unabhängig von Sinn oder Blödsinn sind das für mich Gelegenheiten, meine excel-Kenntnisse zu verbessern, ein guter Handwerker kann schließlich auch mit schlechtem Werkzeug brauchbare Ergebnisse erzielen  .

@beide: <=Zeilen[Matrix]> (nicht: <=Zeile[Bezug]>, diese liefert die Zeilennummer eines Zellbezuges.) ist IMHO eine definierte excel-Funktion, welche die Anzahl der Zeilen eines im Argument [Matrix] angegebenen Bereiches zurückgibt. Diese funktioniert problemlos, auch über verschiedene Register hinweg. Leider weiß ich nicht, wie ich die mit dieser Funktion ermittelte Zeilenanzahl der excel-Tabelle1 für andere excel-Tabellen oder dynamische Bereiche übernehmen kann.

@Thomas:  Die excel-Tabelle2 auf dem Tabellenblatt "Register2" weiß halt eben noch nicht, dass sie sich auf die excel-Tabelle1 auf dem "Register1" beziehen soll, genau das ist ja die Frage. Die Idee mit der wenn-Funktion klingt spannend. Wenn ich sie getestet habe, werde ich mich wieder melden.

mfg, Ingo 

------------------
"Umwege erhöhen die Ortskenntnisse!"

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 23. Jan. 2013 09:13    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

Die Idee mit der wenn-Funktion klappt leider nicht, da in allen herunterkopierten Zellen ja die Funktion drinsteht, auch wenn diese als solche einen Leerwert ("") zurückgibt. Daher besitzt der zweite dynamische Bereich soviele Zeilen, wie die wenn-Funktion herunterkopiert wurde und eben nicht soviele Zeilen wie der erste dynamische Bereich besitzt.

------------------
"Umwege erhöhen die Ortskenntnisse!"

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

Paulchen
Mitglied
Bauing./SW-Entwickler


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

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 23. Jan. 2013 13: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 Ingo Struck 10 Unities + Antwort hilfreich

Hmja, macht Sinn. Kannst Du es anders lösen, z. B. alles innerhalb eines Registers, Hilfszeilen und/oder -spalten, Filter, Sortieren, Ausblenden..?

Falls Dir WENN einen Fehler oder Leerwert zurückgibt, lässt sich das über ein umgebendes WENN abfangen: =WENN(Abfrage...="";"";WERT).

Kannst/magst Du 'ne anonymisierte Beispielmappe hochladen?

------------------
DIN1055.de  |  Lastannahmen für Anwender

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 23. Jan. 2013 17:01    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 zusammen,

@ Paulchen: Die "wenn-Funktion" funktioniert so schon gut und gibt auch keine Fehler zurück. Falls die Zellen leer sind ("", kein Leerzeichen), wird auch dieses korrekt zurückgegeben. Trotzdem steht in den Zellen ja noch immer die Formel als solche drin, die Zellen sind also nicht leer.
Den Aufbau der Arbeitsmappe möchte ich nicht mehr ändern, da sie mittlerweile recht komplex ist und auch schon seit eineinhalb Jahren im Arbeitsalltag gut funktioniert. Es kommt für die Sachbearbeiter lediglich ein weiteres Register "Statusliste" hinzu, damit die Arbeitsabläufe auf den anderen Registerblättern nicht umgestellt werden müssen.

@all:

gelöst habe ich jetzt die Aufgabe mit VBA. Im Tabellenblatt "Statusliste", welches die Werte vom Tabellenblatt "Auftragsübersicht 2013" übernehmen soll, habe ich im VBA-Editor den Aufruf des Makros "Zellen kopieren" reingesetzt:

  Private Sub Worksheet_Activate()
      Call ZellenKopieren
  End Sub

im Modul1 steht folgendes Makro:

  Sub ZellenKopieren()
  '
  ' kopiert die Zellen A4:A1000 vom Tabellenblatt "Auftragsübersicht 2013" in die Zellen A4:A1000 vom Tabellenblatt "Statusliste"
  '
      Dim i As Integer
          For i = 4 To 1000
          Sheets(2).Cells(i, 1).Value = Sheets(1).Cells(i, 1).Value
      Next i
  End Sub

Dieses Makro funktioniert so wie gewünscht. Als i-Tüpfelchen möchte ich jetzt noch die Ausdrücke <Sheets(2)> durch <Sheets("Statusliste")> und <Sheets(1)> durch <Sheets("Auftragsübersicht 2013")> ersetzen, in diesem Fall bricht das Makro jedoch mit folgender Fehlermeldung ab:

  Laufzeitfehler '9':

  Index außerhalb des gültigen Bereichs

vermutlich habe ich die Namenskonvention beim Aufruf von Tabellenblättern noch nicht richtig verstanden.

Dank an euch beide und bis auf weiteres, Ingo 

------------------
"Umwege erhöhen die Ortskenntnisse!"

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

Paulchen
Mitglied
Bauing./SW-Entwickler


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

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 23. Jan. 2013 18:16    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 Ingo Struck 10 Unities + Antwort hilfreich

Hi, freut mich, dass Du Dich an VBA wagst, wo die Bordmittel versagen  !

Zwei prinzipielle Überlegungen, kein echter Code:
1) Ein Sheet1.Range("A4:A1000").Copy und Sheet.Range("A4").Paste mit ggf. xlContents tut's nicht? Ich behaupte, es dauert recht lange, jede einzelne Zelle zu kopieren und einzufügen.
2) Worksheet müsste Dein Vorhaben unterstützen? Falls Du das umsetzt, darf niemand mehr die Register nachträglich umbenamsen, sonst haut es Dir das Makro um die Ohren.

------------------
DIN1055.de  |  Lastannahmen für Anwender

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
4 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2009 - deutsch
MS-Office Standard 2010

erstellt am: 24. Jan. 2013 10: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 Paulchen,

1) Ein anderer Weg, den ich aber nicht zum laufen gebracht habe. Allerdings verstehe ich auch nicht, wann ich "sheet", "sheets", "sheet1", "sheet(1)", "sheets(1)", "sheet("1")" oder "sheets("1")" schreibe. Auch die Benutzung der Namen der Tabellenblätter habe ich nicht hingekriegt, da ich immer (unterschiedliche) Fehlermeldungen bekomme, welche mir so erstmal nichts sagen.
Die oben genannte Version läuft jedoch und benötigt auch weniger als eine Sekunde. Sie ist somit für unsere Zwecke hinreichend.

2) Worksheet habe ich auch getestet (naja, probiert), aber auch nichts nennenswertes hinbekommen.

@all: Sicherlich wäre an dieser Stelle erstmal ein Grundkurs VBA angebracht, was aber in diesem Forum zu viel verlangt ist. Deshalb Dank für die Aufmerksamkeit und Hilfestellung hier auf cad.de! Mit Eurer Begleitung habe ich die Aufgabe ja auch lösen können.

mfg, Ingo 

------------------
"Umwege erhöhen die Ortskenntnisse!"

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)2023 CAD.de | Impressum | Datenschutz