Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
624to628
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zahlenblock aufteilen

Zahlenblock aufteilen
16.06.2005 21:23:31
Andy
Hallo Profis,
ich hoffe Ihr könnt mir bei einme Problem helfen. Ich versuche für meine Kollegen eine Exceltabelle zu erstellen in der Zahlenblocke in die Spalte A und B erfasst werden. Die einzeln in den Zahlenblöcken enthaltenen Nummer sollen in einzelne Zahlen umgewandelt werden, die dann über eine Suchfunktion abgefragt werden können.
Beispiel: In Spalte A steht die Nummer 50001 ; in Spalte B 50010
Jede einzelne Zahl soll dann in Spalte C einzeln untereinander stehen.
Hintergrund: Wir wollen eine Stückenummerndatenbank anlegen um zu prüfen ob die Nummer schon mal vorhanden war. Aber jede Nummer einzeln einzugeben ist zum Teil zu Zeitaufwendig. Hätte jemand eine Idee wie wir das umsetzen können?
Für Eure Hilfe im voraus vielen Dank,
Andy

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
?
16.06.2005 21:28:41
ransi
hallo andy
das verstehe ich nicht.
welche zahlen sollen in spalte C stehen?
kannst du dein gewolltes ergebniss mal graphisch oder anders darstellen?
ransi
AW: ?
16.06.2005 21:32:32
Andy
Hi,
viellich ein wenig unglücklich ausgedrückt - sorry.
Zahlen Nr. 50001 bis 50010 (= ergibt Einzelzahlen 50001, 50002, usw. bis 50010)
die einzelnen Zahlen sollen dann untereinander in der Spalte C stehen, damit die Gesamtzahlen aufsteigend sortiert werden können und wir rauskriegen ob die Nummer schon mal da waren.
War es jetzt veständlicher?
Gruß,
Andy
AW: ?
16.06.2005 21:54:53
ransi
hallo
so?
 
 ABC
1500015001050001
2  50002
3  50003
4  50004
5  50005
6  50006
7  50007
8  50008
9  50009
10  50010
11  0
12  0
Formeln der Tabelle
C1 : =A1
C2 : =WENN((C1+1)<=$B$1;C1+1;0)*($A$1<=C1)
C3 : =WENN((C2+1)<=$B$1;C2+1;0)*($A$1<=C2)
C4 : =WENN((C3+1)<=$B$1;C3+1;0)*($A$1<=C3)
C5 : =WENN((C4+1)<=$B$1;C4+1;0)*($A$1<=C4)
C6 : =WENN((C5+1)<=$B$1;C5+1;0)*($A$1<=C5)
C7 : =WENN((C6+1)<=$B$1;C6+1;0)*($A$1<=C6)
C8 : =WENN((C7+1)<=$B$1;C7+1;0)*($A$1<=C7)
C9 : =WENN((C8+1)<=$B$1;C8+1;0)*($A$1<=C8)
C10 : =WENN((C9+1)<=$B$1;C9+1;0)*($A$1<=C9)
C11 : =WENN((C10+1)<=$B$1;C10+1;0)*($A$1<=C10)
C12 : =WENN((C11+1)<=$B$1;C11+1;0)*($A$1<=C11)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
ransi
Anzeige
AW: ?
16.06.2005 22:12:52
Andy
Hi ransi,
ist schon mal klasse! Würde die Formel halt runterziehen.
Gibt es sowas eigentlich auch in VBA? Vielleicht sogar variabel, d.h auch wenn ich z.Bsp. einmal 50 Zahlen haben und einmal 100 aufeinanderfolgende?
Gruß,
Andy
AW: Zahlenblock aufteilen
17.06.2005 08:42:54
Heiko
Hallo Andy,
diesen Code in das Modul deines Tabellenblattes. Im Blatt in die beiden ersten Spalten die Zahlen und dann die Zelle in der dritten Spalte (rechts neben den Zahlen) mit der RECHTEN Maustaste anklicken.
Neue Zahlen können dann in Spalte A und B wenn die Liste in C "beendet ist".
1234 1236 1234
_________1235
_________1236
2222 2225 2222
_________2223
_________2224
_________2225
...

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim lngI As Long ' Befinde ich mich in 1. oder 2. Spalte dann nichts tun. If Target.Column <= 2 Then Exit Sub If Target.Offset(0, -1) <> "" And Target.Offset(0, -2) <> "" Then Cancel = True If Target.Offset(0, -1) < Target.Offset(0, -2) Then MsgBox "Die Zahl in der rechten Spalte ist kleiner als die in der linken !", vbCritical Exit Sub End If If IsNumeric(Target.Offset(0, -2)) = False Or IsNumeric(Target.Offset(0, -1)) = False Then MsgBox "Die eingetragenen Werte sind keine Zahlen !", vbCritical Exit Sub End If For lngI = 0 To CLng(Target.Offset(0, -1) - Target.Offset(0, -2)) Cells(lngI + Target.Row, Target.Column) = Target.Offset(0, -2) + lngI Next lngI End If End Sub
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Zahlenblock aufteilen
17.06.2005 08:57:59
Heiko
Hallo Andy,
der Code nochmal ein bisschen sicherer, bitte den alten gegen diesen austauschen.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim lngI As Long ' Befinde ich mich in 1. oder 2. Spalte dann nichts tun. If Target.Column <= 2 Then Exit Sub If Target.Offset(0, -1) <> "" And Target.Offset(0, -2) <> "" Then Cancel = True If IsNumeric(Target.Offset(0, -2)) = False Or IsNumeric(Target.Offset(0, -1)) = False Then MsgBox "Die eingetragenen Werte sind keine Zahlen !", vbCritical Exit Sub End If If Target.Offset(0, -1) < Target.Offset(0, -2) Then MsgBox "Die Zahl in der rechten Spalte ist kleiner als die in der linken !", vbCritical Exit Sub End If For lngI = 0 To CLng(Target.Offset(0, -1) - Target.Offset(0, -2)) Cells(lngI + Target.Row, Target.Column) = Target.Offset(0, -2) + lngI If Target.Row + lngI >= 65536 Then MsgBox "Zeile " & Target.Row + lngI & " ist erreicht, mehr Zeilen gehen nicht !", vbCritical Exit Sub End If Next lngI End If End Sub
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Zahlenblock aufteilen
17.06.2005 11:30:53
Andy
Hallo Heiko, hallo ransi,
KLASSE!!!!!! Funktioniert prima!!! Da merkt man die Profis!!!
Danke an Euch beide!!
Jetzt werde ich mal unverschämt: Gibt es noch die Möglichkeit den Code so anzupassen, daß ich nur in Zeile A1 und B1 die Zahlen eingebe und die "aufgeteilten" Zahlen automatisch in die nächste frei Zelle geschrieben werden?
Mir wäre evtl eine Lösung über eine Hilfsspalte eingefallen die nach Aufteilung wieder geleert wird. Habt Ihr ne bessere Idee?
Gruß,
Andy
AW: Zahlenblock aufteilen
17.06.2005 14:29:59
ransi


      
hallo andy
versuchs mal so:
Option Explicit
Public Sub test()
    
Dim letzte As Range
    
Dim L As Long
    
Dim z As Long
L =[b1] -[a1]
While z <= L
    
Set letzte = IIf(Range("c65536").End(xlUp) = "", Range("c65536").End(xlUp), Range("c65536").End(xlUp).Offset(1, 0))
    letzte =[a1] + z
    z = z + 1
Wend
End Sub
ist allerdings noch keine Fehlerroutine drin die ungültige eingaben abfängt.
Anstossen kannst du das ganze über eine button.
ransi 


Anzeige
AW: Zahlenblock aufteilen
17.06.2005 14:50:37
Heiko
Hallo Andy,
neuer Versuch. Ersetze den alten Code komplett mit diesem.
Dann wird nach Eingabe einer Zahl in Spalte B die Liste automatisch "unten" angehängt, also ohne Button oder Rechtsklick.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngI As Long, lngLastRow As Long
If Target.Rows.Count > 1 And Target.Columns.Count > 1 Then Exit Sub
If Target.Column <> 2 Then Exit Sub
If Target.Offset(0, -1) <> "" And Target <> "" Then
If IsNumeric(Target.Offset(0, -1)) = False Or IsNumeric(Target) = False Then
MsgBox "Die eingetragenen Werte sind keine Zahlen !", vbCritical
Exit Sub
End If
If Target < Target.Offset(0, -1) Then
MsgBox "Die Zahl in der rechten Spalte ist kleiner als die in der linken !", vbCritical
Exit Sub
End If
lngLastRow = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row + 1
For lngI = 0 To CLng(Target - Target.Offset(0, -1))
Cells(lngI + lngLastRow, 3) = Target.Offset(0, -1) + lngI
If Target.Row + lngI >= 65536 Then
MsgBox "Zeile " & Target.Row + lngI & " ist erreicht, mehr Zeilen gehen nicht !", vbCritical
Exit Sub
End If
Next lngI
End If
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
Zusatzinfo
17.06.2005 15:00:07
Heiko
Hallo Andy,
du kannst die Ausgangszahlen in Spalte A und B dabei übrigens untereinander wegschreiben.
123 125 123
222 224 124
_______125
_______222
_______223
_______224
Gruß Heiko
AW: Zahlenblock aufteilen
17.06.2005 21:32:11
Andy
Hallo zusammen,
bin begeistert!!! Sogar meine "Excel-Ahnungslose" Freundin ist mega begeistert.
Vieln Dank für die Hilfe!!!!
Gruß,
Andy

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige