Autor
|
Thema: Spalte umdrehen (1918 mal gelesen)
|
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon Phantom II, 6GB, Nvidia Quadro Pro FX 1800 Inventor Series 10 Mathcad 13+14
|
erstellt am: 13. Mai. 2006 17:21 <-- editieren / zitieren --> Unities abgeben:
Hi, Ich habe eine Spalte A1 bis A300 mit Daten. Jetzt moechte ich die umdrehen, d.h. ich moechte den Wert A300 in B1 und A299 in B2 u.s.w. Sollte an und fuer sich nicht so schwer sein, aber ich werde hier nichts. Ich habe eine Spalte C erstellt und mit Werten von 300 runter gehend auf 1 gefuellt, aber dann in B1 zu schreiben =A(C1), um damit =A300 auszudruecken, geht ja nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 14. Mai. 2006 07:32 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
Hallo Clayton, Code: Sub ZellenAusfuellen() Dim t, i, Anzahl As Double Anzahl = 300 'Anzahl der Datensätze anpassen!! i = 1 For t = Anzahl To 1 Step -1 Tabelle1.Cells(i, 2).Value = Tabelle1.Cells(t, 1).Value i = i + 1 Next End Sub
Funzt?[edit] Oder Plan B ohne Makro: in Spalte B folgendes eintragen: B1 = x300 B2 = x299 B3 = x298 Jetzt kann man die AutoAusfüllen Funktion von Excel nutzen und bis unten kopieren lassen (ein Doppelclick ) Dann mit Suchen und Ersetzen (Strg+F) nach "x" suchen und mit "=A" ersetzen lassen. Zack, fertig [/edit] Gruß, Nicole ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... [Diese Nachricht wurde von runkelruebe am 14. Mai. 2006 editiert.] [Diese Nachricht wurde von runkelruebe am 14. Mai. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 14. Mai. 2006 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
Hallo Nicole, ein paar Anmekungen zu deinem Makro. Dim t, i, Anzahl As Double Damit dimensionierst du t und i als Variant und nur Anzahl als Double. Wobei Double schon etwas übertrieben ist, da die Anzahl der Zeilen in einer Exceltabelle keine Nachkommastellen haben kann, und auch über einen Long - Wert nicht hinaus kommt. Auch bei Excel12 nicht. Du gibst die Anzahl der Zeilen als Festwert in der Prozedur an. Mach das doch dynamisch. Das Makro soll sich die letzte Zeile selber suchen. Das ganze ist ein reines Umschichten. So etwas solltest du besser in einem Array, und nicht in der Tabelle selbst machen. Arrayoperationen sind 100mal schneller als Tabellenoperationen. Der Unterschied ist bei 300 Zeilen noch nicht gravierend, aber bei 30.000 Zeilen macht's ne Menge aus. Ich würde das ganze so machen: Code: Public Sub test() Dim vntArray1 As Variant, vntArray2() As Variant Dim lngRow As Long, lngIndex As Long, lngCount As Long lngRow = Cells(Rows.Count, 1).End(xlUp).Row vntArray1 = Range(Cells(1, 1), Cells(lngRow, 1)).Value ReDim vntArray2(1 To lngRow, 1 To 1) For lngIndex = lngRow To 1 Step -1 lngCount = lngCount + 1 vntArray2(lngCount, 1) = vntArray1(lngIndex, 1) Next Range(Cells(1, 2), Cells(lngRow, 2)).Value = vntArray2 End Sub
------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 14. Mai. 2006 11:22 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
Hallo nepumuk! ... und ich war so stolz auf mein Schleifchen und bei arrays bin ich doch noch nicht Vielen Dank für Tips! Gruß, Nicole ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004
|
erstellt am: 14. Mai. 2006 13:35 <-- editieren / zitieren --> Unities abgeben:
Hi, Vielen Dank an Euch beide. Das ist eben das Problem, ich habe nach einer "Plan B" aehnlichen Loesung gesucht, geht aber so nicht. Aber das hat mir eine Anregung gegeben: B1-> -300, B2->B1+1, dann FILL bis unten. Die ganze Spalte ueber die Zwischenablage in einen Texteditor und alle "-" durch "=A" ersetzen und zurueck ueber die Zwischenablage. Funktioniert bestens. Gruss [Diese Nachricht wurde von Clayton am 14. Mai. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 15. Mai. 2006 07:52 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
Hallo Clayton, Zitat: ich habe nach einer "Plan B" aehnlichen Loesung gesucht, geht aber so nicht
wundert mich, ich hab's genau so getestet und meine Vorgehensweise gepostet, ohne Editor...aber am Ende hast Du ja Dein Ziel erreicht. Schönen Tag! Nicole ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Teddibaer Ehrenmitglied V.I.P. h.c. Struktur-Experte
Beiträge: 2125 Registriert: 09.02.2004
|
erstellt am: 15. Mai. 2006 08:41 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
Das sollte mit TRANSPONIEREN gehen. - Zu "kopierende" Zellen markieren - Strg C - neue Zelle (Ziel wählen) - Bearbeiten - Inhalte einfügen UND ganz unten in der Dialogbox "Transponieren" wählen - Fertig - Freuen - U's verteilen P.S.: Wenn Du mit A1 startest, kannst Du nicht in A1 einfügen. Deshalb in A2 einfügen und Spalte A anschließend löschen!!! ------------------ Gruß, der Teddibaer
Besucht mich doch mal ... ---------------- Es gibt nichts Gutes, ausser man tut es [Diese Nachricht wurde von Teddibaer am 15. Mai. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 15. Mai. 2006 09:02 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
Schade Teddibaer, Zitat: - Zu "kopierende" Zellen markieren - Strg C - neue Zelle (Ziel wählen) - Bearbeiten - Inhalte einfügen UND ganz unten in der Dialogbox "Transponieren" wählen - Fertig - Freuen - U's verteilen
wenn ich transponiere, krieg ich die Zellen in die waagerechte verteilt, aber nicht senkrecht und umgedreht (was ja bei Matritzen auch Sinn vom Transponieren ist, wenn ich mich an meine letzte Mathestunde dumpf erinnere...habe die Prüfung allerdings auch mit Applaus versaut ) => - Fertig - Wundern - Keine U's für Dich Gruß, Nicole ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Teddibaer Ehrenmitglied V.I.P. h.c. Struktur-Experte
Beiträge: 2125 Registriert: 09.02.2004
|
erstellt am: 15. Mai. 2006 09:30 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
|
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004 AMD Athlon Phantom II, 6GB, Nvidia Quadro Pro FX 1800 Inventor Series 10 Mathcad 13+14
|
erstellt am: 15. Mai. 2006 12:41 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von runkelruebe: Oder Plan B ohne Makro: in Spalte B folgendes eintragen: B1 = x300 B2 = x299 B3 = x298 Jetzt kann man die AutoAusfüllen Funktion von Excel nutzen und bis unten kopieren lassen (ein Doppelclick ) Dann mit Suchen und Ersetzen (Strg+F) nach "x" suchen und mit "=A" ersetzen lassen. Zack, fertig [/edit]
Hi, Das Problem ist, wenn ich =x300, =x299 u.s.w. und dann "Fill", dass es immer hochzaehlt und nicht runter. Oder gibt es einen Weg Excel dazu zu bewegen abzuziehen? Gruss
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 15. Mai. 2006 12:46 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
|
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004
|
erstellt am: 15. Mai. 2006 13:30 <-- editieren / zitieren --> Unities abgeben:
|
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 15. Mai. 2006 14:12 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
|
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004
|
erstellt am: 15. Mai. 2006 15:14 <-- editieren / zitieren --> Unities abgeben:
|
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 15. Mai. 2006 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
Hallo, hab die englische und deutsche Version von Excel 2003 installiert und kann ein "," nicht nachvollziehen. Gibt in beiden Versionen eine Fehlermeldung. Erst bei einem ";" läuft's wie ein Heimspiel. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Clayton Ehrenmitglied Konstrukteur
Beiträge: 1632 Registriert: 07.02.2004
|
erstellt am: 15. Mai. 2006 17:12 <-- editieren / zitieren --> Unities abgeben:
Hi, Mehr Beweise als im Anhang hab' ich nicht. Es sei denn eine eidesstattliche Erklaerung, dass es ohne Komma nicht geht. Ok, solange man "wahr" nicht ganz weg laesst. (um es Thomas recht zu machen) Gruss P.S. Aber 2002. [Diese Nachricht wurde von Clayton am 15. Mai. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 15. Mai. 2006 18:11 <-- editieren / zitieren --> Unities abgeben: Nur für Clayton
|