Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
940to944
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
940to944
940to944
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bestehende Zahlenreihe mit Ganzzahlen ergänzen

bestehende Zahlenreihe mit Ganzzahlen ergänzen
11.01.2008 16:53:00
Silva
Hallo zusammen,
zum Freitagabend noch eine kleine bis grosse Frage, wir werden sehen
Folgendes Problem:
Ich habe eine Zahlenreihe in einer Zeile in einem Tabellenblatt x z.B.
0 ;1.625 ;3.25 ;4.875 ;6.5 ;8.125
Ziel ist es, automatisiert über ein Makro, folgendes zu tun:
1. gehe die Zeile Wert für Wert durch
2. wenn du zwischen 2 bestehenden Werten eine Ganzzahl (1, 2,3, etc) überschreitest, füge eine Spalte ein, und schreibe die Ganzzahl in die Zelle rein
Ergebnis soll folgendermassen aussehen
0 ;1 ;1.625 ;2 ;3 ;3.25 ;4 ;4.875 ;5 ;6 ;6.5 ;7 ;8 ;8.125
Bin über jeden Hinweis total dankbar!
Danke vorab an alle
Silva

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
bestehende Zahlenreihe mit Ganzzahlen ergänzen
11.01.2008 17:19:32
Renee
Hi Silva,
So (Code gehört in ein Modul) ?

Sub FürDieAktiveZeile()
Dim iCol As Integer
iCol = 1
Do
If ActiveSheet.Cells(ActiveCell.Row, iCol + 1) - _
ActiveSheet.Cells(ActiveCell.Row, iCol) > 1 Then
ActiveSheet.Cells(ActiveCell.Row, iCol + 1).EntireColumn.Insert
ActiveSheet.Cells(ActiveCell.Row, iCol + 1).Value = _
Int(ActiveSheet.Cells(ActiveCell.Row, iCol).Value + 1)
End If
iCol = iCol + 1
Loop While Not IsEmpty(ActiveSheet.Cells(ActiveCell.Row, iCol))
End Sub


GreetZ Renée

AW: bestehende Zahlenreihe mit Ganzzahlen ergänzen
15.01.2008 08:21:27
Silva
Hallo Renée,
cool danke, allerdings funktioniert es von der Systematik her noch nicht ganz so gut. Weil in diesem Codeteil
If ActiveSheet.Cells(ActiveCell.Row, iCol + 1) - _
ActiveSheet.Cells(ActiveCell.Row, iCol) > 1 Then" das >1 nicht stimmt / funktioniert.
Denn wenn ich z.B. die Zahlen 0.98 ; 1.15 ; etc habe dann ist 1.15-0.98=0.17 und dann erkennt er nicht, dass dazwischen eine Ganzzahl gehört, weil der Wert nicht > 1 ist.
Verstehst du was ich meine?
Meine Idee war, folgende Funktion anstelle >1 einzubinden,
=WENN(GANZZAHL(A1)=GANZZAHL(A2);0 (mache nichts);1(füge Spalte ein)) , also im Endefekt über runden,
Kannst du / Könnt ihr mir beim einbinden helfen?
Lieben Dank vorab,
Gruss, Silva

Anzeige
AW: bestehende Zahlenreihe mit Ganzzahlen ergänzen
15.01.2008 08:46:45
Renee
Hi Silva,
Denn wenn ich z.B. die Zahlen 0.98 ; 1.15 ; etc habe dann ist 1.15-0.98=0.17 und dann erkennt er nicht, dass dazwischen eine Ganzzahl gehört, weil der Wert nicht &gt 1 ist.
Verstehst du was ich meine?

Nein, ich verstehe nicht was du meinst, denn diese Aussage ist eine klare Kontradiktion zu deiner Regel:
2. wenn du zwischen 2 bestehenden Werten eine Ganzzahl (1, 2,3, etc) überschreitest, füge eine Spalte ein, und schreibe die Ganzzahl in die Zelle rein

0.17 überschreitet ganz klar kein Ganzzahl! Es sei denn die Definition lautet: die Grenze einer Ganzzahl und nicht die Differenz einer Ganzzahl. Ist das damit gemeint ?
GreetZ Renée

Anzeige
AW: bestehende Zahlenreihe mit Ganzzahlen ergänzen
15.01.2008 09:02:10
Silva
oje, ja eigentlich meinte ich die Grenze einer Ganzezahl überschreitet und nicht die Differenz,
da habe ich mich wohl unklar / falsch ausgedrückt, sorry dafür.
also wenn ich 2 Zahlen habe e.g. 0.01 ; 1.35 --> dann will ich das er erkennt, das dazwischen die Ganzzahl 1 liegt! und dann an der richtigen Stelle (also in logische Zahlenabfolge) 0.01 ; 1; 1.35 die Zahl in eine neue Spalte einfügt (allerdings in der gleichen Zeile).
Kannst du mir hierbei auch helfen?
Gruss, Silva

AW: bestehende Zahlenreihe mit Ganzzahlen ergänzen
15.01.2008 09:09:00
Renee
Hi Silva,
Dann so:

Sub FürDieAktiveZeile()
Dim iCol As Integer
iCol = 1
Do
If (Int(ActiveSheet.Cells(ActiveCell.Row, iCol + 1)) - _
Int(ActiveSheet.Cells(ActiveCell.Row, iCol)) >= 1) _
And _
(ActiveSheet.Cells(ActiveCell.Row, iCol + 1)  _
Int(ActiveSheet.Cells(ActiveCell.Row, iCol).Value) + 1) Then
ActiveSheet.Cells(ActiveCell.Row, iCol + 1).EntireColumn.Insert
ActiveSheet.Cells(ActiveCell.Row, iCol + 1).Value = _
Int(ActiveSheet.Cells(ActiveCell.Row, iCol).Value + 1)
End If
iCol = iCol + 1
Loop While Not IsEmpty(ActiveSheet.Cells(ActiveCell.Row, iCol))
End Sub


GreetZ Renée

Anzeige
Noch eine unklare Definition:
15.01.2008 09:12:00
Renee
Silva,
heisst: ...eine neue Spalte einfügt (allerdings in der gleichen Zeile).
Eine Spalte zieht sich per Definitionem über alle Zeilen und nicht auf eine bestimmte Zeile.
Meinst Du vielleicht, das im gegebenen Fall eine Zelle zwischen den Werten eingefügt werden soll ?
GreetZ Renée

AW: Noch eine unklare Definition:
15.01.2008 09:28:58
Silva
traumhaft, es funktioniert!!!
zu deiner Frage, ich meine eine "Zelle" aber eine "Zelle" in "Zeile 1" kann man ja über das einfügen einer Spalte machen?! dann entsteht in jeder Zeile eine neue Zelle...
noch eine kurze Frage zum Code:
...(ActiveSheet.Cells(ActiveCell.Row, iCol + 1) _
Int(ActiveSheet.Cells(ActiveCell.Row, iCol).Value) + 1) Then...
Wieso schreibst du in diesem Fall "... .Value" , und bei den anderen Befehlen nicht? ich weiss, das .value den Wert der Zelle betrachtet aber machen das die anderen Befehle nicht auch?
Gruss, Silva

Anzeige
.Value oder default
15.01.2008 10:05:00
Renee
Hi Silva,
Nun das mit dem .Value ist ein bisschen inkonsequent im meinem Code.
Da .Value die Default Eigenschaft ist, könnte man sie hier auch weglassen. Ich schreibe oft .Value dann, wenn ich eine Operation (wie hier +1) mit dem Wert machen will, um sicher zu sein.
GreetZ Renée

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige