Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

Spalteneintrag verschieben | Herbers Excel-Forum


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

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) <> "A1" Then Exit Sub
    Application.EnableEvents = False
    Range("A2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2").Value = Range("A1")
    With Target
        .Clear
        .Select
    End With
    Application.EnableEvents = True
End Sub


Gruss Rainer


  

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 Sub
GreetZ 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 Sub
genügt.

GreetZ Renée


  

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

 ABCDEFGHIJKL
1Eingabe  Eingabe Neu 1Spalte 2 Eingabe Neu 2Spalte 2 Eingabe 37Spalte 2Spalte 3
2das  Neu 1Ende Neu 2das Neu 36dasund
3ist  das  Neu 1Ende Neu 35istdas
4der  ist  das  Neu 34derEnde
5Anfang  der  ist  Neu 33Anfang 
61  Anfang  der  Neu 321 
72  1  Anfang  Neu 312 
83  2  1  Neu 303 
94  3  2  Neu 294 
105  4  3  Neu 285 
116  5  4  Neu 276 
127  6  5  Neu 267 
138  7  6  Neu 258 
149  8  7  Neu 249 
1510  9  8  Neu 2310 
1611  10  9  Neu 2211 
1712  11  10  Neu 2112 
1813  12  11  Neu 2013 
1914  13  12  Neu 1914 
2015  14  13  Neu 1815 
2116  15  14  Neu 1716 
2217  16  15  Neu 1617 
2318  17  16  Neu 1518 
2419  18  17  Neu 1419 
2520  19  18  Neu 1320 
2621  20  19  Neu 1221 
2722  21  20  Neu 1122 
2823  22  21  Neu 1023 
2924  23  22  Neu 924 
3025  24  23  Neu 825 
3126  25  24  Neu 726 
3227  26  25  Neu 627 
3328  27  26  Neu 528 
3429  28  27  Neu 429 
35und  29  28  Neu 330 
36das  und  29  Neu 231 
37ende  das  und  Neu 132 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Gruss Rainer


Beiträge aus den Excel-Beispielen zum Thema "Spalteneintrag verschieben"