![]() |
danke wbendl für die umfangreiche hilfe bisher!!
eine Frage hab ich jetzt noch ;) mit der SQL-Anweisung wird ein Bestimmter Zellenbereich (Ax:Zy) mit Monatsumsätzen gefüllt. Über den Chartwizard Code:
Charts.Add Die Anzahl der Verkäufer kann sich aber ändern (wenn nach Kostestelle abgefragt wird). deshalb würde ich gerne den Tabellenbereich dynamisch (automatisch) vergrößern können. füe die Letzte Zeile gibt es ja die Funktion Code:
Range("A65536").End(xlUp).Offset(1, 0).Select wie kann ich das jetzt in meine Range("A1:B17") einbauen? es müsste dann ca so aussehen: Range("A1:ss[umgewandelt in Buchstaben]lr[umgewandelt in zahl]") leider bekomm ich das nicht hin, und es scheint auch keine vorgefertigte Lösung zu geben (zumindest hab ich in google nichts entdeckt.... mfg |
Eine Zelle oder einen Bereich kann man auch nur mit Zahlen definieren. Damit kann man numerische Variable direkt einsetzen.
Beispiel: Range(Cells(Zeile1, Spalte1), Cells(Zeile2, Spalte2)) mfg WB |
Zitat:
ohne die "Cells(,)" geht es aber.... noch etwas ist mir eingefalle. kann ich am ende einer Monatsabrechnung (aus der access-db) eine =SUMME(A1:A13) anhängen, und das für jedes monat extra (also in die Schleife einbauen die mir die Monatsbeträge ausspuckt) mfg |
Zu Cells:
Eventuell muß die Tabelle angegeben oder ausgewählt werden. Ich hab diese Methode jedenfalls früher verwendet. Zur Summe: Wie die Formel in eine Zelle kommt, kannst du dir mit dem Makro-Recorder ansehen. Du könntest die Summe aber auch über SQL aus der DB holen. Es wäre übrigens möglich, die ganze Tabelle über eine SQL-Anweisung zu erstellen. Schau dir mal in Access eine Kreuztabellen-Abfrage an. Ich hab einmal ein Tool für die Berechnung einer Gesamtwertung aus mehreren Radrennen gebastelt. Die Version mit der DB war ca. um den Faktor 100 schneller als die Version mit Excel und VBA. mfg WB |
Zitat:
Cool, und ich hab mir, das letzte mal wie ich sowas gebraucht hab, extra eine Funktion gebastelt die von "A" weg mit ASCII Werte rechnen konnte und dann wieder auf die Buchstaben umgewandelt hat.... :heul: ;) |
Zitat:
"Die Methode 'Cells' für das Objekt '_Global' ist fehlgeschlagen" wie meinst du das aktivieren/Auswählen der Tabelle? Sheets("Tabelle1").Activate ? mfg |
Poste mal den ganzen Code. Dann probier ich das selber.
Übrigens welche Version von Excel verwendest du? mfg WB |
achtung lange Codewurst
Office 2002 Code:
Option Base 1 mfg und Danke für die Hilfe (1000 mal) :) |
Hab ich mich doch richtig erinnert. Die Tabelle muß vorher ausgewählt werden. (Würde ich als Bug bezeichnen)
Name des Diagramm-Blattes zur späteren Verwendung speichern: dia = ActiveChart.Name Tabellen-Blatt auswählen: Sheets("Tabelle1").Select Dann sollte es so funktionieren: Diagramm-Blatt mit Namen ansprechen. Sheets(dia).SetSourceData Source:=Range(Cells(7, 1), Cells(17, 2)), PlotBy:=xlColumns Blätter mit Namen ansprechen ist immer gut. Wer weiß mitten im Code schon, was jetzt ActiveSheet ist? Mit Probieren ist leider nichts. Also alle Angaben ungeprüft. Was meinst du bezüglich der Verweise? Noch ein paar Tips, für die Zukunft: Globale Deklarationen sollte man so sparsam wie möglich verwenden. Bei dir sind wahrscheinlich keine notwendig. Um Variable mehreren Prozeduren zur Verfügung zu stellen, verwendet man Parameter. Das Schlüsselwort Global sollte man auch nicht verwenden. Es genügt Dim im Deklarations-Abschnitt. Außerdem möchte ich dir nochmal ADO ans Herz legen. Da würde ich dann eventuell die Connection Modulweit deklarieren. mfg WB |
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag