Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Makro beim n-ten Klicken in n-te Zeile
zurück: Unable to set the default property of the PivotItemClass!?!? weiter: Druckansicht und Druck als pdf-Ansicht Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Philippi
Gast


Verfasst am:
28. Jan 2009, 18:42
Rufname:

Makro beim n-ten Klicken in n-te Zeile - Makro beim n-ten Klicken in n-te Zeile

Nach oben
       Version: Office 2007

Hallo,
ich hab mit Excel mir ein Dartprogramm gemacht, bei dem man die geworfenen Werte eingibt und es dann automatisch ne Statistik anlegt.
So nach Spiel 1 werden dann die Werte der Statistik (des Spiels) in die Langzeitstatistik reinkopiere, das klappt auch noch ganz gut:

Sub Spiel1()
'
' Spiel1 Makro
'
'
Range("D17:H17").Select
Selection.Copy
Range("C40").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D19:H19").Select
Application.CutCopyMode = False
Selection.Copy
Range("J40").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D23:H23").Select
Application.CutCopyMode = False
Selection.Copy
Range("Q40").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C3:E12").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("J3:L12").Select
Selection.ClearContents
Range("Q3:S12").Select
Selection.ClearContents
End Sub

Jetzt will ich aber nach Spiel 2, nicht wie ich es jetzt haben, einen zweiten Makro machen, der dann die Ergebnisse eine Zeile tiefer kopiert (also C41,J41,Q41).

Ich hätte lieber ein Makro, der es automatisch immer eine Zeile tiefer kopiert, sodass ich nur ein Eingabefenster brauche.
Und weiß noch jemand, wie ich dann das Makro noch dazu bring, die Langzeittabelle in einem Graphen anzuzeigen? Also X-Achse die Anzahl der Spiele (1-n)?!

Wer nett wenn mir jemand helfen könnte.
Schönen Gruß
Philipp
Andy Hennig
VBA-Amateur


Verfasst am:
29. Jan 2009, 01:09
Rufname:


AW: Makro beim n-ten Klicken in n-te Zeile - AW: Makro beim n-ten Klicken in n-te Zeile

Nach oben
       Version: Office 2007

Halllo Philippi,

könntest Du eine Beispielmappe hochladen (siehe: "Hilfe Datei Upload", ist etwa auf der Höhe von "HIGHLIGHT TEXT"), denn ich sehe noch nicht ganz durch, was Du eigentlich genau willst. Hier habe ich Dir ein paar Tipps zusammengeschrieben, die Dir mglweise helfen können und die Du lesen solltest, bevor Du eine Mappe hochlädst.

Select ist unnötig:
Um Deinen Code leichter lesbar für jedermann und vor allem schneller zu machen, solltest Du alle "Select" und "Selection" - Befehle rausnehmen, denn diese sind zu 99% vermeindbar und unnötig. Hier ein paar Beispiele wie das ganz leicht geht:

Code:

'--------------------------------'
'LANG UND UMSTÄNDLICH
Range("D17:H17").Select
Selection.Copy
'KURZ UND SCHNELL
Range("D17:H17").Copy
'--------------------------------'
'LANG UND UMSTÄNDLICH
Range("C40").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'KURZ UND SCHNELL
Range("C40").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'--------------------------------'


Codedurchwusteln: Zu empfehlen ist der Einsatz der F-Tasten: F5 (makro laufen lassen), F8 (nur genau 1 Schritt), F9 (Stoppzeile einfügen).

"Ergebnisse immer eine Zeile tiefer kopieren ": Was du brauchst, ist der "offset" Befehl!!! Hier ein paar Zeilen Code als Beispiel für "offset(Zeilen, Spalten)" und dem Übergeben von Werten an andere Makros. Ich hoffe, das ist verständlich.

Code:

Sub mainFrame()
' Hauptprogramm, welches in einer Schleife drei Mal das makro "SpielTest" aufruft,
' und diesem immer den aktuellen Wert i übergibt
'--------------------------'
'VARIABLES
'--------------------------'
Const strZeilenVerstopfer = "lalelu, dies ist mein Testwert"
'--------------------------'
'VARIABLES
'--------------------------'
dim i as Integer
'--------------------------'
'SCHLEIFE
'--------------------------'
for i=1 to 3
   Call SpielTest(i, strZeilenVerstopfer) 'ruft Makro "SpielTest" auf und übergibt diesem den Wert i
next i
End sub

Sub SpielTest(meinKleinerIntegerWert as Integer, strXYZ as String)
' Dieses kleine Makro wird vom Hauptprogramm aufgerufen und macht nix anderes
' als von der Zelle "A1" immer eine bestimmte Anzahl Zeilen weiter runterzugehen
' um dort einen Wert einzutragen
   'Fehler abfangen:
    if meinKleinerIntegerWert<1 then  exit sub
    Range("A1").Offset(meinKleinerIntegerWert,0).Value = strXYZ
End Sub


"Langzeittabelle in einem Graphen anzuzeigen": Grundsätzlich könntest Du erst einmal den entsprechenden Code mit dem Recorder in Excel aufzeichnen ... wir könnten Dir dann helfen diesen zu entschlacken.

Bitte: Wenn Du code postest, bitte benutze die code-tags!!!! '[ code]' und '[ /code]', das erhöht die Lesbarkeit und erhöht damit automatisch die Wahrscheinlichkeit, dass jemand Dir antwortet.



Zeitautwand: 15min
Philippi
Gast


Verfasst am:
29. Jan 2009, 02:02
Rufname:

AW: Makro beim n-ten Klicken in n-te Zeile - AW: Makro beim n-ten Klicken in n-te Zeile

Nach oben
       Version: Office 2007

Danke erstmal ich glaucb das hilft schon mal ein wenig!

Also muss zuerst dazu sagen, dass ich erst mit Makros angefangen hab und mich jetzt erst langsam reinles...
Also dass mit Select weglassen ist klar, aber dein zweiter Teil nicht ganz.

Nochmal zu meinem Problem, hier mal mit Beispielen:

Also ich hab 3 Spieler, die von 301 auf 0 runterwerfen (ganz normal Dart halt), und ich geb die geworfenen Werte in 3 Tabellen ein (für jeden Spieler eine). So jetzt hab ich eine Tabelle gemacht mit Funktionen von den eingetippten Würfen, z.B. Anzahl der Würfe pro Spiel oder Durchschnitt pro Runde.

So jetzt will ich, nach jedem Spiel, dass die Tabelle der eingegebenen Werte gelöscht wird und die Statistik in eine neue Tabelle kopiert wird (Langzeittabelle). Dieses Makro habe ich ja gepastet und hat auch ganz gut gepasst (ok, kanns noch verschlankern)...

Mein Problem war jetzt, dass die Zellen in die ich meine Statistik reinkopiere fest sind in dem Makro, sodass ich im Moment für mein zweites Spiel ein eigenes Makro brauche, welches genau wie Makro von Spiel1 ist, nur mit anderen Zellen, in die ich es reinkopiere (z.B. anstatt C40 in C41 usw...).

Mein Wunsch wäre es also, dass ich nur ein Button (Makro) brauche, dass ich nach jedem Spiel drücke (oder Tastenkombination) und dass meine Statisik des Spiels immer in neue Zellen kopiert.

Also Bsp.: Spiel1: Würfe: A: 30 B:32 C:28
Durchs. Wurf A:11 B: 9 C: 13


Spiel2: Würfe: A: 20 B:22 C:28
Durchs. Wurf A:16 B: 14 C: 13 usw.

Meine Tabelle hab ich soweit auch schon, sie bezieht sich halt auf die Werte der Langzeittabelle, ist aber auch 20 Spiele beschränkt, da ich 20 Makros geschrieben habe, also nur 20 Spiele möglich sind.
Ich hätte es gern, dass die Tabelle "mitwächst", sodass die Anzahl der Spiele (X-Achse) immer größer wird pro Spiel...

So ich hoffe mein Problem ist nun besser verständlich.

Das was du geschrieben hast mit i-ter Komponete geht glaub ich schon in die richtige Richtung, aber so wie ich dass verstanden habe läuft die Schleife dann auch i-mal duch?! Das wäre ja hier beim mir nicht so gut, oder?

Also wäre nett wenn jemand antwortet, auch wenn es nur um ein Spiel geht ;)

Gruß Philippi
Andy Hennig
VBA-Amateur


Verfasst am:
29. Jan 2009, 02:25
Rufname:

AW: Makro beim n-ten Klicken in n-te Zeile - AW: Makro beim n-ten Klicken in n-te Zeile

Nach oben
       Version: Office 2007

Zitat:
Also muss zuerst dazu sagen, dass ich erst mit Makros angefangen hab und mich jetzt erst langsam reinles...

kein Problem, alle von uns habe irgendwann einmal angefangen. Very Happy

Zitat:
Also dass mit Select weglassen ist klar, aber dein zweiter Teil nicht ganz.

Mein zweiter Teil? Die F-Tasten? Öffne mit ALT-F11 den Makroeditor und probiere mal die Wirkung von F5, F8 und F9 aus ... hilft sehr, um die Verständnis "was-in-welchem-Schritt-durch-welchen-Befehl-ausgeführt-wird" zu verbessern.

Zitat:
Aber so wie ich dass verstanden habe läuft die Schleife dann auch i-mal duch?! Das wäre ja hier beim mir nicht so gut, oder?

Korrekt ... hmm ... ich bin kein Profi ... ich würde es vielliehct mit einer For-schleife probieren, die defaultmäßig 1000Mal durchläuft, wo aber eine Abbruchbedingung drin ist, dass aufgehört wird, wenn die Pkt-Zahl bei Null ist. Aber bestimmt wüsste ein Profi einen besseren Tipp.

Code:

For i=1 to 1000
'hier code
'ganz viel Code
' code, der die Variable "iPunktStand" durch Würfe immer weiter senkt
if iPunktStand <=0 then exit for
next i


Zitat:
So ich hoffe mein Problem ist nun besser verständlich.

Hui, nee, nicht unbedingt. Aber das liegt wahrscheinlich an der Uhrzeit und meiner Konzentration .... Wink [/code]
Philippo
Gast


Verfasst am:
29. Jan 2009, 17:24
Rufname:


AW: Makro beim n-ten Klicken in n-te Zeile - AW: Makro beim n-ten Klicken in n-te Zeile

Nach oben
       Version: Office 2007

Also danke ertsmal, aber mein Problem besteht weiterhin, vllt könnte sich jemand mal kurz melden, ob und wie es möglich wär:

Also mein Wunsch ist (vereinfacht aufs Wesentliche):

1) Makro ausführen: Zelle A1 in Zelle A2 kopieren.
2) Makro erneut ausführen: Zelle A1 in Zelle A3 kopieren.
3) Makro erneut ausführen: Zelle A1 in Zelle A4 kopieren.
4) Makro erneut ausführen: Zelle A1 in Zelle A5 kopieren. usw...

Alles mit einem Makro wenn es geht. So dass immer die eingebenen Werte von Zelle A1 in eine andere Zelle kopiert werden (und nicht immer Zelle A2 z.B. überschrieben wird).
Andy Hennig
VBA-Amateur


Verfasst am:
29. Jan 2009, 17:40
Rufname:

AW: Makro beim n-ten Klicken in n-te Zeile - AW: Makro beim n-ten Klicken in n-te Zeile

Nach oben
       Version: Office 2007

Code:

Sub Makro2()
Dim rSrc As Range, rTgt As Range
Set rSrc = Range("A1")
Set rTgt = Range("A5:A15")

'Kopierbefehl
rTgt.Value = rSrc.Value
   
End Sub
Philippi
Gast


Verfasst am:
29. Jan 2009, 17:58
Rufname:

AW: Makro beim n-ten Klicken in n-te Zeile - AW: Makro beim n-ten Klicken in n-te Zeile

Nach oben
       Version: Office 2007

Ne ich glaub du hast mich immer noch falsch verstanden.
So wie dein Code jetzt ist kopiert er mir ja einfach Die Zelle A1 in die Zellen A5 bis A15.

Ich will aber, nochmal mit Beispiel:

Also Ich trage in A1 die Zahl "5" ein. Dann führe ich mein Makro aus (Button), und der kopiert mir "5" in Zelle A2.

So danach trage ich in Zelle A1 die Zahl "12" ein und führe wieder das gleiche Makro aus, nur soll er jetzt "12" nicht in Zelle A2, sondern in Zelle A3 kopieren.

Danach trage ich die Zahl "4" in Zelle A1 ein und mein Makro soll sie jetzt in Zelle A4 reinkopieren. Usw...

Wenn es immer noch nicht verständlich ist, kann ich die ja mal mein Programm schicken und du kannst es dir mal ansehen...

Gruß und trotzdem schonmal vielen Dank für die Mühe
Andy Hennig
VBA-Amateur


Verfasst am:
29. Jan 2009, 18:08
Rufname:

AW: Makro beim n-ten Klicken in n-te Zeile - AW: Makro beim n-ten Klicken in n-te Zeile

Nach oben
       Version: Office 2007

Code:

Sub buttonErsatz()
    Call pasteValue(ActiveSheet.Range("A1"), 3)
End Sub

Sub pasteValue(rSrc As Range, iColTarget As Integer)

' rSrc: ist ein Range-Object, von welchem der Wert kommt
' icolTarget: ist die Nummer der Zielspalte, wo der Wert unten drangehängt wird

Dim rTgt As Range
'Definiere Zielzelle: letzte Zelle in der Zeile iColTarget
Set rTgt = ActiveSheet.Cells(64000, iColTarget).End(xlUp).Offset(1, 0)
'Kopierbefehl, wenn nur reine WERTE kopiert werden sollen:
rTgt.Value = rSrc.Value

End Sub



Generell ist es grundsätzlich keine schlechte Idee von Anfang an eine Beispielmappe mit hochzuladen, das erleichtert die Kommunikation zwischen Fragendem und Helfenden meist sehr. ;)
Philippi
Gast


Verfasst am:
29. Jan 2009, 18:20
Rufname:


AW: Makro beim n-ten Klicken in n-te Zeile - AW: Makro beim n-ten Klicken in n-te Zeile

Nach oben
       Version: Office 2007

Ok vielen Dank! genau das hab ich gesucht.

Schönen Gruß
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: automatisches Makro 1 Mixery 1568 09. Dez 2005, 20:21
ae automatisches Makro
Keine neuen Beiträge Excel Formeln: Zeile mit Spalte multiplizieren 19 0001001 2980 11. Nov 2005, 15:25
rainberg Zeile mit Spalte multiplizieren
Keine neuen Beiträge Excel Formeln: Ausgeblendete Zeile wieder einblenden ! 3 Obi Wan Kenobi 46382 02. Nov 2005, 15:24
Obi Wan Kenobi Ausgeblendete Zeile wieder einblenden !
Keine neuen Beiträge Excel Formeln: Frage zu Spalte ==> Zeile 2 Sven 15 519 23. Sep 2005, 11:03
Sven 15 Frage zu Spalte ==> Zeile
Keine neuen Beiträge Excel Formeln: [Excel 2003] Wenn zeile D8-D38 1 dann wert +1 1 quicksilver 728 22. Aug 2005, 11:15
KingPing [Excel 2003] Wenn zeile D8-D38 1 dann wert +1
Keine neuen Beiträge Excel Formeln: Zeile einfügen - Formeln mit einfügen 0 Pazi 648 03. Aug 2005, 08:33
Pazi Zeile einfügen - Formeln mit einfügen
Keine neuen Beiträge Excel Formeln: Suchen und übereinstimmung in neue Zeile 2 Sternenhimmel75 821 03. Aug 2005, 08:27
Sternenhimmel75 Suchen und übereinstimmung in neue Zeile
Keine neuen Beiträge Excel Formeln: Letzte ausgefülte Zeile suche 1 kira 1073 02. Jun 2005, 15:48
fl618 Letzte ausgefülte Zeile suche
Keine neuen Beiträge Excel Formeln: Makro fürs Sortieren 2 nhs47800 1951 11. Mai 2005, 09:47
nhs Makro fürs Sortieren
Keine neuen Beiträge Excel Formeln: Zeile in fremder Tabelle ermitteln? 6 CaBe 1357 06. Apr 2005, 16:05
fl618 Zeile in fremder Tabelle ermitteln?
Keine neuen Beiträge Excel Formeln: Die 6 höchsten Werte aus einer Zeile mit 12 Werten aufsummie 18 ThomasF 2087 04. Apr 2005, 10:31
Arnim Die 6 höchsten Werte aus einer Zeile mit 12 Werten aufsummie
Keine neuen Beiträge Excel Formeln: zuletzt befüllte Zeile anzeigen 1 michi1234 949 29. März 2005, 13:54
fridgenep zuletzt befüllte Zeile anzeigen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps