Informationen und Beispiele zum Thema ListBox | |
---|---|
![]() |
ListBox-Seite mit Beispielarbeitsmappe aufrufen |
Informationen und Beispiele zum Thema SpinButton | |
---|---|
![]() |
SpinButton-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Spalteneintrag verschieben
von: Saxinger
Geschrieben am: 04.02.2010 11:39:08
Schönen Guten Morgen zusammen!
Hat jemand eine Lösung für folgendes Problem??
Ich möchte immer in der selben Zelle zB.: A1 einen Wert eingeben.
Nach einer Eingabe soll sich der gerade eingegebene Wert automatisch nach A2 verschieben
und die Zelle A1 wieder frei sein für eine weitere Eingabe.
Und immer so weiter bis irgenwann 37 Werte in einer Spalte eingetragen sind danach sollte es in Spalte B1 weitergehen. Wie eine verkehrte Schlange halt die immer länger wird.
Danke
Saxinger
Betrifft: AW: Spalteneintrag verschieben
von: Ramses
Geschrieben am: 04.02.2010 11:43:19
Hallo
Das ist nur seehr aufwändig mit einer VBA-Programmierung zu erledigen.
Daher stellt sich dem Sinn nach einer solchen Aktion.
Gruss Rainer
Betrifft: AW: Spalteneintrag verschieben
von: Saxinger
Geschrieben am: 04.02.2010 11:50:08
Hallo
Danke für deine rasche Antwort. Da ich ja in Sachen VBA ein völliges Lulu bin weiß ich natürlich nicht welcher Aufwand das ist. Ich dachte halt es geht recht einfach so einen Code zu schreiben wenn sich jemand gut auskennt. Wäre es einfacher wenn es keinen Spaltenwechsel gäbe sonder sich die Wert einfach nur nacheinander nach unten anfügen???
gruß Saxinger
PS brauche das für Statistikauswertung im Roulette
danke
Betrifft: AW: Spalteneintrag verschieben
von: Ramses
Geschrieben am: 04.02.2010 12:05:09
Hallo
"...Wäre es einfacher wenn es keinen Spaltenwechsel gäbe sonder sich die Wert einfach nur nacheinander nach unten anfügen???.."
Das wäre wesentlich einfacher.
Rechte Maustaste auf den Tabellenamen im Register
Code anzeigen
dort den Code reinkopieren
Betrifft: AW: Spalteneintrag verschieben
von: Saxinger
Geschrieben am: 04.02.2010 12:11:33
Vielen Dank es funktioniert super!
Aha und den Sprung in eine andere Spalte (spalte B ) wäre um ein Eck komplizierter.
Na wenn es dich juckt dann würde ich mich freuen ansonsten danke vorerst.
peter
Betrifft: AW: Spalteneintrag verschieben
von: Ramses
Geschrieben am: 04.02.2010 12:14:37
Hallo
Ich denke nicht dass sich jemand die Mühe macht.
Es müssen bei jeder Eingabe alle Einträge auf die Position überprüft und jeweils korrekt nach unten bzw. in eine neue Spalte verschoben werden.
Der prüfungsaufwand ist einfach zu gross, wenn man nicht weiss wieviele Positionen eingeben werden
Gruss Rainer
Betrifft: AW: Spalteneintrag verschieben
von: Saxinger
Geschrieben am: 04.02.2010 12:18:08
Alles klar! Kennst du dich beim Roulette ein wenig aus. Konkret meine ich die Permanenzen , daß sind die bereits erschienen Zahlen die untereinander aufgelistet werden. Was ist das für ein Programm? Die schreiben ja die Permanenzen 24 stunden mit.
gruß
peter
Betrifft: Sorry,... von Roulette keine Ahnung o.w.T.
von: Ramses
Geschrieben am: 04.02.2010 12:23:47
...
Betrifft: Auch nicht von russischem ?? ;-D (owT)
von: Renee
Geschrieben am: 04.02.2010 12:41:29
Betrifft: AW: Auch nicht von russischem ?? ;-D (owT)
von: Saxinger
Geschrieben am: 04.02.2010 12:43:09
was heisst denn owt
Betrifft: o = ohne, w = weiteren, T = Text...
von: Ramses
Geschrieben am: 04.02.2010 12:44:46
Hallo
und damit ist gemeint, dass HIER kein weiterer Text mehr steht
Gruss Rainer
Betrifft: Ich spielte immer die Risikovariante...
von: Ramses
Geschrieben am: 04.02.2010 12:46:02
Hallo Renee
mit 6 Kugeln im Revolver.
Zum Glück war ich nie der Erste und hab daher immer gewonnen :-)
Gruss Rainer
Betrifft: AW: Ich spielte immer die Risikovariante...
von: Saxinger
Geschrieben am: 04.02.2010 13:05:30
Alles klar! Hab was für dich gefunden, ramses!!!
Nur ganz funzt es nicht. Es soll auf A1 wieder zurückspringen. Und was ist an dieser formel jetzt soviel aufwand????
gruß saxo
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim lngSpalte As Long If Target.Address = "$A$1" Then lngSpalte = IIf(Range("A37") = "", 0, Cells(37, Columns.Count).End(xlToLeft).Column) Application.EnableEvents = False Target.Offset(1, lngSpalte).Insert Target.Offset(1, lngSpalte).Value = Target.Value Target.Clear Application.EnableEvents = True End If End Sub
Betrifft: Das funktioniert doch nicht....
von: Ramses
Geschrieben am: 04.02.2010 13:30:24
Hallo
Dass du das einfach "gefunden" hast, glaube ich dir nicht und Crossposting stinkt mir sehr.
Ausserdem funktioniert das hinten und vorne nicht, weil die Daten nicht wie von Dir gefordert "durchgeschoben" (A2 nach A3, A3 nach A4 usw.) werden, sondern immer ein eine neue Spalte angehängt werden.
Die ersten Eingabedaten werden fortlaufend von A2 - A37 eingegeben mit "verschieben" des ersten Wertes von A2 nach A3, aber dann wird eben nicht in A2 neu eingeben und der Rest nach spalte B geschoben, sondern einfach in B2 weitergeschrieben.
Das deckt sich nicht im geringsten mit deinen Anforderungen und die Auswertung deiner Permanzenen fällt auf die Schnauze.
Gruss Rainer
Betrifft: AW: Das funktioniert doch nicht....
von: Saxinger
Geschrieben am: 04.02.2010 14:01:04
du hast recht es funktioniert nicht. Was genau stinkt dir sehr???
Das ich mir informationen aus der Welt der Programmierprofis hole weil ich leider keiner bin.
Sorry wenn ich dich beleidigt hab, aber ich bin von Profis wie du einer bist abhängig und wenn du es aber nicht machen willst musst es mir sagen. Sorry
Lieben gruß
Betrifft: AW: Das funktioniert doch nicht....
von: Ramses
Geschrieben am: 04.02.2010 14:18:46
Hallo
"... Was genau stinkt dir sehr???..."
Weil mit der Fragestellung in mehreren Foren unsinnig viele Leute mit dem gleichen Problem belastet werden.
Wenn du für jede Fragestellung zahlen müsstest würdest du das ja auch nicht machen,... oder ?
Crossposting ist in keinem Forum gern gesehen.
Faustregel:
Wenn du auf eine Frage nach ca. 6 Stunden keine Antwort erhältst, ist keiner sauer.
Aber wenn du woanders eine Antwort erhältst, dann solltest du so ehrlich sein und die Quelle auch mitteilen.
"...aber ich bin von Profis wie du einer bist abhängig..."
Ich erhalte aber kein Geld dafür sondern mache das in meiner spärlichen Freizeit. Wenn du also "Profis" in mehreren Foren mit deiner Frage "beschäftigst", dann stinkt mir das, und den anderen auch, weil ich/wir diese Zeit woanders einsetzen hätte können. Ich mache mir mit deiner Frage Gedanken und versuche eine Problemlösung zu erarbeiten welche deine Anforderungen berücksichtigt, aber zum Ergebnis komme, das dies mit einem vernünftigen Zeit- und Nutzenaufwand nicht zu realisieren ist.
Dann stinkt es mir, wenn du "zufällig" eine Formel "findest" die noch nicht mal funktioniert, aber dann gefragt wird: "Was ist daran nun so kompliziert" .
Die Suche nach Problemlösungen beschränken sich daher auf max. 15 Min. meiner Zeit.
Ist der Aufwand grösser, muss schon ein spezieller Anreiz da sein:
Entweder ein ausgefallenes Problem, wo mich die Lösung als solches interessiert und ich dies evtl. woanders wieder verwenden kann, oder Bezahlung.
Denn Antworter hier machen das hier für Gotteslohn, in vielen Fällen noch nicht mal dafür,.... und die Fragesteller verdienen damit ihr Geld weil die firmeneigene IT-Abteilung damit nicht belastet wird, oder eine enorme Zeitersparnis eintritt.
Gruss Rainer
Betrifft: AW: Das funktioniert doch nicht....
von: Saxinger
Geschrieben am: 04.02.2010 14:27:51
Ok Verstanden lieber Rainer!
Ich bedanke mich trotzdem für deine Mühen und wollte dich in keinsterweise beleidigen.
Vielleicht ist der Reiz da , wenn nicht kann man nix machen und dann wünsche ich dir noch einen schönen Tag
gruß
peter
Betrifft: AW: Spalteneintrag verschieben
von: Renee
Geschrieben am: 04.02.2010 16:37:44
Hi,
Was ist eine verkehrte Schlange ??
Vielleicht sowas ? Aber Achtung: In der Zeile unter der cMaxColLen wird alles überschrieben und was mehr als die Anzahl Spalten des Blatts braucht wird entsorgt!
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Const cMaxColLen = 37 ' Max Column Length Dim lngCol As Long Dim lngRow As Long If Target.Address <> "$A$1" Then Exit Sub Application.EnableEvents = False Range(Cells(1, 1), Cells(cMaxColLen, Columns.Count - 1)).Cut Cells(2, 1) Range(Cells(cMaxColLen + 1, 1), Cells(cMaxColLen + 1, Columns.Count - 1)).Cut Cells(1, 2) Rows(cMaxColLen + 1).ClearContents Cells(1, 1).Activate Application.EnableEvents = True End SubGreetZ Renée
Betrifft: AW: Spalteneintrag verschieben
von: Saxinger
Geschrieben am: 04.02.2010 16:42:52
Verkehrte Schlange ist ein blöder Ausdruck ich weiß aber du hast dieses Problem zu 100% gelöst. Vielen Dank Renee
gruß
Betrifft: vielleicht zu 102% und was zuviel ist...
von: Renee
Geschrieben am: 04.02.2010 16:54:24
ist zuviel:
Private Sub Worksheet_Change(ByVal Target As Range) Const cMaxColLen = 37 ' Max Column Length Dim lngCol As Long If Target.Address <> "$A$1" Then Exit Sub Application.EnableEvents = False Range(Cells(1, 1), Cells(cMaxColLen, Columns.Count - 1)).Cut Cells(2, 1) Range(Cells(cMaxColLen + 1, 1), Cells(cMaxColLen + 1, Columns.Count - 1)).Cut Cells(1, 2) Rows(cMaxColLen + 1).ClearContents Cells(1, 1).Activate Application.EnableEvents = True End Subgenügt.
Betrifft: Chapeau...
von: Ramses
Geschrieben am: 04.02.2010 16:57:34
Hallo Renee
Der Trick mit dem Zeilen einfügen und unten abschneiden ist genial.
Das löst natürlich all Prüf- und Versatzprobleme auf einmal
Gruss Rainer
Betrifft: AW: Spalteneintrag verschieben
von: Ramses
Geschrieben am: 04.02.2010 16:47:35
Hallo Renee
Im Prinzip soll das so aussehen
Tabelle2
A | B | C | D | E | F | G | H | I | J | K | L | |
1 | Eingabe | Eingabe Neu 1 | Spalte 2 | Eingabe Neu 2 | Spalte 2 | Eingabe 37 | Spalte 2 | Spalte 3 | ||||
2 | das | Neu 1 | Ende | Neu 2 | das | Neu 36 | das | und | ||||
3 | ist | das | Neu 1 | Ende | Neu 35 | ist | das | |||||
4 | der | ist | das | Neu 34 | der | Ende | ||||||
5 | Anfang | der | ist | Neu 33 | Anfang | |||||||
6 | 1 | Anfang | der | Neu 32 | 1 | |||||||
7 | 2 | 1 | Anfang | Neu 31 | 2 | |||||||
8 | 3 | 2 | 1 | Neu 30 | 3 | |||||||
9 | 4 | 3 | 2 | Neu 29 | 4 | |||||||
10 | 5 | 4 | 3 | Neu 28 | 5 | |||||||
11 | 6 | 5 | 4 | Neu 27 | 6 | |||||||
12 | 7 | 6 | 5 | Neu 26 | 7 | |||||||
13 | 8 | 7 | 6 | Neu 25 | 8 | |||||||
14 | 9 | 8 | 7 | Neu 24 | 9 | |||||||
15 | 10 | 9 | 8 | Neu 23 | 10 | |||||||
16 | 11 | 10 | 9 | Neu 22 | 11 | |||||||
17 | 12 | 11 | 10 | Neu 21 | 12 | |||||||
18 | 13 | 12 | 11 | Neu 20 | 13 | |||||||
19 | 14 | 13 | 12 | Neu 19 | 14 | |||||||
20 | 15 | 14 | 13 | Neu 18 | 15 | |||||||
21 | 16 | 15 | 14 | Neu 17 | 16 | |||||||
22 | 17 | 16 | 15 | Neu 16 | 17 | |||||||
23 | 18 | 17 | 16 | Neu 15 | 18 | |||||||
24 | 19 | 18 | 17 | Neu 14 | 19 | |||||||
25 | 20 | 19 | 18 | Neu 13 | 20 | |||||||
26 | 21 | 20 | 19 | Neu 12 | 21 | |||||||
27 | 22 | 21 | 20 | Neu 11 | 22 | |||||||
28 | 23 | 22 | 21 | Neu 10 | 23 | |||||||
29 | 24 | 23 | 22 | Neu 9 | 24 | |||||||
30 | 25 | 24 | 23 | Neu 8 | 25 | |||||||
31 | 26 | 25 | 24 | Neu 7 | 26 | |||||||
32 | 27 | 26 | 25 | Neu 6 | 27 | |||||||
33 | 28 | 27 | 26 | Neu 5 | 28 | |||||||
34 | 29 | 28 | 27 | Neu 4 | 29 | |||||||
35 | und | 29 | 28 | Neu 3 | 30 | |||||||
36 | das | und | 29 | Neu 2 | 31 | |||||||
37 | ende | das | und | Neu 1 | 32 |