Jump to content

Recommended Posts

Hallo Leute

ich fummel zur Zeit echt viel mit Excel (2000) und habe mal eine frage.

wie schaffe ich es den zelleninhalt einer anderen Tabelle in einer arbeitsmappe abzufragen bzw zu ändern ?

z.B.

das Makro löpt auf Tabelle A und ich möchte eine Zelle (z.B. a1) in Tabelle B abfragen und das Ergebnis in a2 auf Tabelle B abspeichern.

bisher habe ich mit dem Befehl cells(1,1)=XX z.B. die Sache gemacht nur auf einer anderen Tabelle gehts nicht.

Analog dazu, wie kann ich gleich auf eine andere Datei zugreifen.

mappe1 fragt Zelle a1 in Tabelle D auf mappe2.xls ab

wäre nett wenn es jemand wüßte.

mfg mathias

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo matthias,

anbei ein Excel-Makro. Ich hoffe, es hilft dir weiter!


'Bitte beachten, Makro funktioniert nur, wenn eine Datei "Mappe1.xls" mit zwei Tabellen mit den
'Namen "Tabelle1" und "Tabelle2" angelegt und ABGESPEICHERT wird. Des weiteren wird eine
'zweite Datei "Mappe2.xls" mit einer Tabelle ("Tabelle1") benötigt. Auch diese muss erst
'abgespeichert werden!
Public Sub TransferContent()

   Dim workbook1       As Workbook
   Dim workbook2       As Workbook
   Dim worksheet1      As Worksheet
   Dim worksheet2      As Worksheet
   Dim worksheet3      As Worksheet

   'Erste Mappe mit den Namen "Mappe1.xls" ansprechen
   Set workbook1 = Application.Workbooks("Mappe1.xls")
   
   'Erstes und zweites Tabellenblatt der Mappe1.xls ansprechen
   Set worksheet1 = workbook1.Worksheets("Tabelle1")
   Set worksheet2 = workbook1.Worksheets("Tabelle2")
   
   'Inhalt von Zelle A1 aus Tabelle1 in Zelle A1 in Tabelle2 übertragen
   worksheet2.Cells(1, 1).Value = worksheet1.Cells(1, 1).Value
   
   '
   'zweite Mappe (Datei "Mappe2.xls")
   '
   
   'Zweite Mappe mit den Namen "Mappe2.xls" ansprechen
   Set workbook2 = Application.Workbooks("Mappe2.xls")
   
   'Erstes Tabellenblatt der Mappe2.xls ansprechen
   Set worksheet3 = workbook2.Worksheets("Tabelle1")
   
   'Inhalt aus Zelle A1 aus Mappe2.xls/Tabelle1 in Zelle B1 in Mappe1.xls/Tabelle1 übertragen
   worksheet1.Cells(1, 2).Value = worksheet3.Cells(1, 1).Value
   
End Sub

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nachdem es hier anscheinend doch einige EXCEL-Experten gibt, habe auch ich eine Frage. Ich beschäftige mich erst seit einger Zeit mit der EXCEL-Programmierung, aber es gefällt mir recht gut. Habe nicht geglaubt, dass man so viel in EXCEL machen kann. Nun habe ich etliche Systeme in Programmen realisiert, habe dort auch eingebaut, dass auf 5 Jahre Permanenzen zugregriffen werden kann. Man gibt einfach den Tag ein und drückt Nächster Tag. So arbeite ich die ganzen Tage ab. Nun würde ich gerne die Ergebnisse der einzelnen Tage immer wegspeichern um in einer anderen Tabelle dann die Gesamtergebnisse der 5 Jahre zu haben. Wie kann das Macro dafür ausschauen? Muss ich dafür ein Visual BAsic Macro schreiben, oder geht es irgend wie einfacher, denn in Visual BAsic bin ich nicht zu HAuse.

Gruß

Tiger

Link zu diesem Kommentar
Auf anderen Seiten teilen

Coup Permanenz Linker Rechter 1.coup 3.coup Treffer

7 Nachbar Nachbar

1 30 11 8

2 20 1 14

3 21 4 2

4 3 35 26

5 2 21 25

6 9 31 22

7 6 34 27

8 11 36 30 21 NEIN

9 24 5 16

10 24 5 16 21 2 NEIN

11 13 27 36

12 1 33 20

13 23 8 10

14 28 7 12

15 29 18 7

16 25 2 17

17 0 26 32

18 18 22 29

19 23 8 10

20 24 5 16 29 NEIN

21 17 25 34

22 21 4 2 29 NEIN




			
		
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Tigerwoods,

wenn du Hilfe willst, dann beschreibe dein Problem bitte genauer!

Wo stehen bis jetzt die Ergebnisse. Sind diese in Zellen von Excel-Tabellen oder in Variablen von Excel-Macros? Du schreibst, man drückt Taste "Nächster Tag" und schon kommt das Ergebnis ... aber wohin kommt das Ergebnis?

Hast du bis jetzt die Programmierung mit Formeln oder Macros realisiert?

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Tigerwoods:

Das lässt sich ohne VBA-Kenntnisse mit dem Makro-Rekorder realisieren ( /Extras/Makro/Aufzeichnen).

Zuvor würde ich einen Ergebnisbereich erstellen. Beispiel: In Zelle AZ1 das Endergebnis in Coup 72, BA1 = höchster Saldostand bis Coup 72, BB1 = schlechtester Zwischenstand, BC1 = bestes Ergebnis im Partieverlauf bei Abbruchlimit -5 Stücke, BD1 = bestes Ergebnis bei Abbruchlimit -10 Stücke usw.

Der Ergebnisbereich kann 50 oder mehr Spalten breit sein (so dass man alle möglichen Varianten in einem einzigen Durchlauf durchtesten kann).

Wenn dieser Ergebnisbereich vorbereitet wurde (abgespeichert), kann die Makroaufzeichnung begonnen werden.

Beginn mit Prüftag 1. Einfügen aus der Jahrespermanenz. Im Ergebnisbereich werden die Resultate für den Prüftag angezeigt. Dieser Ergebnisabschnitt wird markiert und zwei oder drei Zeilen tiefer eingefügt (nur Werte).

Prüftag 2 aufrufen. Ergebnisbereich markieren und eine Zeile unter den Ergebnissen von Prüftag 1 einfügen.

Prüftag 3 aufrufen. Ergebnisbereich markieren und eine Zeile unter den Ergebnissen von Prüftag 2 einfügen usw.

An dieser Stelle kann die Makroaufzeichnung schon beendet werden. Den Rest kann man im Skript weiter editieren. Einfach die Abschnitte je Prüftag so oft kopieren und einfügen, bis man 31 Tage in Folge abgearbeitet hat.

Für die einzelnen Tage müssen dann nur die Einfügepunkte angepasst werden. Statt Einfügung ab AZ6 bei Prüftag 3 ändert man auf AZ7, AZ8, AZ9, AZ 10 usw.

Auf diese Weise kann man sich innerhalb weniger Minuten ein Skript erstellen, mit dem die Ergebnisse eines Monates in 31 Zeilen untereinander gesammelt werden.

Mit einem weiteren Makro liste ich mir die Ergebnisse von 12 Monaten untereinander auf und kopiere den ganzen Bereich anschließend in ein neues Arbeitsblatt. Die Ergebnisse können dann von Hand oder per Makro in einer neuen Excel-Datei abgespeichert werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe auch ne Frage:

Kann man mit Excel Restanten ermitteln ?

Bsp: 111 222 333

1 Dutzend am längsten ausgeblieben

Bsp2.: 1232321 3 Dutzend am längsten

Habe die Dutzende schon jeweils in separate Spalten gepackt und mit Anzahl leerer Zellen versucht aber irgendwie ...

Thx für TIPPS

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Luna:

Bei solchen Abfragen mache ich zunächst Nebenberechnungen in drei extra Spalten. Für jedes Dutzend eine eigene Spalte. Mal angenommen, in Spalte C sind die Dutzende aufgeschlüsselt. Permanenz 1232321. In Spalte E erfasse ich den Coupabstand nach letztem Erscheinen für das 1.Dutzend.

Beispiel: Formel für Zelle E5: =WENN(C5=1;0; E4+1).

In Spalte F die gleiche Berechnung für das zweite Dutzend: =WENN(C5=2;0; F4+1)

und in Spalte G für das dritte Dutzend: =WENN(C5=3;0; G4+1).

In allen drei Spalten werden die Coupabstände zwischen den letzten Erscheinungen hoch gezählt. Eine der drei muss immer den höchsten Wert haben (Ausnahme zu Beginn der Partie). Welche der Spalten den aktuell höchsten Wert hat, lässt sich in Spalte H abfragen: =WENN(UND(E5>F5;E5>G5);1;WENN(UND(F5>E5;F5>G5);2;WENN(UND(G5>E5;G5>F5);3;"")))

Der angezeigte Wert in Spalte H ist die Restante. Weitere Berechungen kann man dann mit Bezug auf diese Spalte durchführen.

Alle Formeln jeweils kopieren (jeweils in die Zeilen darunter). So weit, wie die Berechnungen stattfinden sollen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Alle :)

Ich arbeite auch immer mit Excel aber möchte mal etwas machen mit MS-Access. Habe ich aber wenig Erfahrung mit.

Ich möchte in Access für jeden Coup eine separate Karte machen mit dazu soviel wie möglich Details, wie Drehrichtung, Drehungen der Scheibe, der Kugel und standort des Croupiers, Wurfweite, Abwurfort, abwurfrhombe etc...

Ich kann da schon einen Designblatt machen aber frage mich ob ich meine Excel-daten einfach dahineinbringen kann und wieviele Rekords erlaubt sind. Auch öchte ich wissen ob damit noch Berechnungen zu machen sind und ob mit so ein Database schneller zu rechnen ist, da jedes Rekord auf der Festplatte geschrieben wird.

Dass ich in Access arbeiten möchte ist folgendes: So ist eine Testprogramm zu machen um jede Coup separat nach zu spielen wie in ein Casino.

Erst wenn der nächste Karte geöffnet wird, ist der nächste Zahl bekannt. Sonst mache ich immer wieder den Fehler schon auf'm nächsten Zahl zu achten.

BlackJack :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Black Jack,

wenn das der einzige Grund ist, hilft Dir vielleicht der Rat, in Excel die Coupzahlen bei weißem Hintergrund auch auf die Farbe Weiß zu stellen und die einzelnen Coups durch Farbwechsel darzustellen.

Gruß Regie

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo BlackJack,

wenn es dir nur um die "Ausblendung" der nächsten Coups geht, dann kannst du dieses Problem auch wunderbar mit Excel lösen.

Bitte beachte, meine Beschreibung bezieht sich auf Excel 2000 (Version 9.x.xxx) !!!

Dazu mußt du erst in Excel die Zeilen mit den nicht gewünschten Coups ausblenden (unsichtbar machen .. ich hoffe, dies ist auch für Holländer verständlich :) ) . Hierzu zuerst die Zeilen markieren, die du ausblenden (nicht sehen) möchtest und dann über das Menü "Format -> Zeilen -> Ausblenden" die markierten Zeilen "unsichtbar" stellen.

Nun kannst du mit Hilfe des Makros Zeile für Zeile wieder einblenden (sichtbar machen).


'Blendet ab der aktiven Zelle die nächste Zeile wieder ein
Sub ZeileEinblenden()

   'nächste Zeile markieren, ausgehend von der aktiven Zeile
   Rows(ActiveCell.Row + 1).Select
   
   'die nun aktive Zeile einblenden
   Selection.EntireRow.Hidden = False
   
End Sub

Zum Einfügen des Makros in Excel bitte wie folgt vorgehen:

Über das Menü "Extras -> Makro -> Visual Basic Editor" das Fenster zum Bearbeiten von Excel Makros aufrufen. Hier über das Menü "Einfügen -> Modul" ein sog. Modul erstellen.

Du siehst nun ein Fenster mit der Überschrift "... - Modul1 (Code)". Nun über Kopieren und Einfügen mein oben stehendes Makro in dieses Fenster kopieren. Wichtig ist, dass der Code zwischen den Zeilen "Sub ZeileEinblenden()" und "End Sub" steht!!! Nun kannst du den Visual Basic Editor (das Fenster, nicht Excel!) wieder schliessen.

Zum schnelleren Ausführen des Makros kannst du in der Symbolleiste von Excel das Makro als eigenen Punkt (Symbol) einhängen. Hierzu wie folgt vorgehen:

Über das Menü "Extras -> Anpassen..." das Fenster zum Anpassen der Menüs aufrufen. Hier auf der Karte "Befehle" in der Liste "Kategorien" den Punkt "Makros" anklicken.

Dann erscheint in der Liste "Befehle" ein Eintrag mit den Namen "Benutzerdefiniertes Menüelement". Diesen Punkt anklicken und per gedrückter, linker Maustast auf die gewünschte Symbolleiste ziehen. Du hast nun auf der Symbolleiste einen neuen Punkt (Symbol) mit den Namen "Benutzerdefiniertes Menüelement". Diese mit der rechten Maustast anklicken. In dem nun aufgeklappten Menü den letzen Punkt "Makro zuweisen ... " anklicken. In dem Fenster kannst du nun das Listenelement "ZeileEinblenden" anklicken und dann "OK" drücken. Du kannst auch eine eigene Beschriftung oder Symbol für diesen neune Punkt erstellen (über das Menü, welches durch Anklicken des neune Punktes mit der rechten Maustaste erhälst).

Nun das Fenster "Anpassen" für die Anpassung der Menüs wieder schliessen.

Du kannst nun das Makro direkt über deinen eben erstellten Symbolpunkt aufrufen. Das Makro blendet, ausgehend von der aktiven, aktuellen Zeile die nächste Zeile wieder ein. Also wenn du in Zeile 2 bist, würde Zeile 3 wieder eingeblendet. sofern diese natürlich vorher ausgeblendet war.

Ich hoffe, du verstehst meine umständlichen, deutschen Ausführungen :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Chi und Regie!

Danke für eure Info. Werde so mal einige Versuche machen.

Ich arbeite aber noch mit Excel97. Denke aber dass es auch damit schon gehen wird. Vielleicht mal suchen in meine Holländische Version, aber die Commands sind immer in Englisch also...

:)

BlackJack

:)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast
Dieses Thema wurde für weitere Antworten geschlossen.
×
×
  • Neu erstellen...