Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
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
Inhaltsverzeichnis

Makro für Dreieckszahlen

Makro für Dreieckszahlen
alifa
Hallo,
ich möchte ein Problem(Freizeit) mit einem VBA Programm lösen. Es werden 4 Dreieckszahlen untereinander geschrieben. Die oberste ist einstellig, die nächste zweistellig ...und die Vierte vierstellig. Senkrecht gelesen sollen auch vier Dreieckszahlen entstehen. Ale Dreieckszahlen müssen verschieden sein. Die ersten Dreieckszahlen sind: 1,2,3,6,10,15,21,28,36,45,55..(Wikipedia)
1+2=3
1+2+3=6
1+2+3+4=10
1+2+3+4+5=15
.
.
.
(falsches)Beispiel:
2
36
136
1891
wäre nett, wenn mir jemand helfen würde.
Gruß, Erhard
AW: Makro für Dreieckszahlen
24.07.2010 20:18:38
Tino
Hallo,
mit Formel
 A
10
21
33
46
510
615
721
828

Formeln der Tabelle
ZelleFormel
A1{=SUMME(ZEILE($A$1:A1)-1)}
A2{=SUMME(ZEILE($A$1:A2)-1)}
A3{=SUMME(ZEILE($A$1:A3)-1)}
A4{=SUMME(ZEILE($A$1:A4)-1)}
A5{=SUMME(ZEILE($A$1:A5)-1)}
A6{=SUMME(ZEILE($A$1:A6)-1)}
A7{=SUMME(ZEILE($A$1:A7)-1)}
A8{=SUMME(ZEILE($A$1:A8)-1)}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen

Diese nach unten Ziehen.
 A
10
21
33
46
510
615
721
828

Gruß Tino
Anzeige
ohne Matrix Formel ;-)
24.07.2010 21:06:15
Tino
Hallo,
geht ja auch ohne Matrix- Formel
 A
10
21
33
46
510

Formeln der Tabelle
ZelleFormel
A2=A1+ZEILE(A1)
A3=A2+ZEILE(A2)
A4=A3+ZEILE(A3)
A5=A4+ZEILE(A4)

Gruß Tino
Anzeige
AW: ohne Matrix Formel ;-)
25.07.2010 07:40:32
alifa
Hallo Tino,
zunächst danke für die Antwort. Das eigentliche Problem ist die Auswahl der "richtigen" Dreieckszahlen, damit die gestellte Bedingung passt. Es kommen die ersten 140 Dreieckszahlen in Betracht und die findet man ohne weiteres im Netz. Daraus sollen 4 Zahlen ausgewählt werden.
A(1,3,6)
B(15,21,28...91)
C(105,136,153,...946)
D(1035,1081,1128....9591)
Die Dreieckszahlen mit 0 am Ende(z.B. 10) sind ausgeschlossen, da keine der senkrechten Zahlen mit 0 beginnen darf.
Gruß, Erhard
eine Auflistung nach Anzahl stellen, mit Beispiel
25.07.2010 12:38:53
Tino
Hallo,
meinst Du so?
Habe es für max. 15 Stellen eingestellt und ohne Zahlen die am Ende (Einerstelle) die 0 haben.
https://www.herber.de/bbs/user/70744.xls
Für was braucht man so etwas?
Gruß Tino
Anzeige
AW: eine Auflistung nach Anzahl stellen, mit Beispiel
25.07.2010 14:27:35
alifa
Hallo,
ich meinte es eigentlich so, wie im "(falsches)Beispiel". Die Dreieckszahlen sollen so untereinander geschrieben werden:
x
xx
xxx
xxxx
Ich brauche das, um VBA besser zu verstehen und anwenden zu können!
Gruß, Erhard
so sind sie doch...
25.07.2010 14:55:50
Tino
Hallo,
einer, Zehner, Hunderter uws...
 A
11
215
3105
41035
510011
6100128
71000405
810001628
9100005153
101000006281
1110000020331
12100000404505
131000001326005
1410000002437316
15100000012392316

Sonst verstehe ich dich nicht, sorry bin draußen.
Gruß Tino
Anzeige
hier noch anders rum
25.07.2010 15:14:20
Tino
Hallo,
hier noch die Variante um die Zahlen so rum darzustellen.
Einer in Spalte A, Zehner in B usw…
Diese dauert etwas länger weil es mehr Zahlen ergibt.
Jetzt hast Du beide Varianten.
 AB
1115
2321
3628
4 36
5 45
6 55
7 66
8 78
9 91
10  

https://www.herber.de/bbs/user/70747.xls
Gruß Tino
Anzeige
AW: Du brauchst nur linksbündig einstellen im Code
26.07.2010 18:38:15
alifa
Hallo Tino,
für was man so etwas braucht?!
Trotzdem vielen Dank!
Gruß, Erhard
und funktioniert es so wie gewünscht?
26.07.2010 19:05:21
Tino
Hallo,
eine Antwort hast Du aber nicht gegeben!? ;-)
Gruß Tino
Dreieckszahlen - speziell
25.07.2010 14:37:49
Erich
Hallo Erhard,
das könnten die Lösungen sein - je nachdem, wie man "untereinander geschrieben" interpretiert -
rechts- oder linksbündig:
 EFGHIJKL
1xx=0:166    
2 453655    
3 861231561    
4 515180015151    
5        
6xx>0:1136666
7 36363615454555
8 105325325105435465595
9 3003165336556555655565556555

In Spalten A:D eines Tabellenblatts stehen die 1-, 2-, 3- und 4-stelligen Dreieckszahlen.
Hier der Code:

Option Explicit
Sub Dreiecke()
Dim k1 As Integer, k2 As Integer, k3 As Integer, k4 As Integer
Dim x1 As Integer, x2 As Integer, x3 As Integer, x4 As Integer
Dim ii As Long, jj As Long, mm As Long, nn As Long
Dim t1 As Long, t2 As Long, t3 As Long, t4 As Long
Dim ss As Long, xx As Long
ss = 0
xx = 5    ' 0 oder >5
For ii = 1 To Cells(Rows.Count, 1).End(xlUp).Row
k1 = Cells(ii, 1)
For jj = 1 To Cells(Rows.Count, 2).End(xlUp).Row
k2 = Cells(jj, 2)
If Right(k2, 1)  "0" Then
For mm = 1 To Cells(Rows.Count, 3).End(xlUp).Row
k3 = Cells(mm, 3)
If Right(k3, 1)  "0" Then
For nn = 1 To Cells(Rows.Count, 4).End(xlUp).Row
k4 = Cells(nn, 4)
If Right(k4, 1)  "0" Then
If xx = 0 Then
x1 = Right(k4, 1)
x2 = 10 * Right(k3, 1) + Mid(k4, 3, 1)
x3 = 100 * Right(k2, 1) + 10 * Mid(k3, 2, 1) + Mid(k4, 2, 1)
x4 = 1000 * k1 + 100 * Left(k2, 1) + 10 * Left(k3, 1) + Left(k4, 1)
Else
x1 = Left(k4, 1)
x2 = 10 * Left(k3, 1) + Mid(k4, 2, 1)
x3 = 100 * Left(k2, 1) + 10 * Mid(k3, 2, 1) + Mid(k4, 3, 1)
x4 = 1000 * k1 + 100 * Right(k2, 1) + 10 * Right(k3, 1) + Right(k4, 1)
End If
For t1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If x1 = Cells(t1, 1) Then
For t2 = 1 To Cells(Rows.Count, 2).End(xlUp).Row
If x2 = Cells(t2, 2) Then
For t3 = 1 To Cells(Rows.Count, 3).End(xlUp).Row
If x3 = Cells(t3, 3) Then
For t4 = 1 To Cells(Rows.Count, 4).End(xlUp).Row
If x4 = Cells(t4, 4) Then
ss = ss + 1
Cells(1 + xx, ss + 5) = k1
Cells(2 + xx, ss + 5) = k2
Cells(3 + xx, ss + 5) = k3
Cells(4 + xx, ss + 5) = k4
End If
Next t4
End If
Next t3
End If
Next t2
End If
Next t1
End If
Next nn
End If
Next mm
End If
Next jj
Next ii
End Sub
Das xx dient nur dazu, dzwischen den beiden Interpretationen zu wählen.
Und hier die Spielmappe dazu: https://www.herber.de/bbs/user/70746.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Dreieckszahlen - speziell
26.07.2010 06:57:05
alifa
Hallo Erich,
vielen Dank! Ich habe die betreffenden Spalten mit den Dreieckszahlen versehen und das Makro laufen lassen. Es erscheinen aber nur die Lösungen mit rechtsbündig. Mein Problem bezog sich auf linksbündig.
Ich sehe, in Deinem Tabellen Ausschnitt sind alle Lösungen, auch die mit linksbündig.
Gruß, Erhard
linksbündig mit xx=0
26.07.2010 08:37:02
Erich
Hi Erhard,
ändere doch im Makro mal die Zeile xx=5 in xx=0 und lass es dann laufen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Makro für Dreieckszahlen
26.07.2010 10:15:58
Erich
Hi Erhard,
hier ein Code zum Füllern der Spalten A:D und noch mal der bisherige Code,
etwas kürzer:

Option Explicit
Sub DreieckszahlenAD()
Dim ss As Long, ii As Long, kk As Long, zz As Long
Dim arE(1 To 999, 1 To 4)
Columns("A:D").ClearContents
kk = 1
Do
ii = ii + 1
ss = ss + ii
If ss >= 10 ^ kk Then _
If kk 
Und die Mappe: https://www.herber.de/bbs/user/70757.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Schmankerl: 5 Dreieckszahlen
26.07.2010 13:11:23
Erich
Hi Erhard,
mit 5 Stellen geht das auch noch ganz gut. Es scheint nur eine Lösung zu geben:
6
78
153
6105
15051
Senkrecht gelesen sind das die Dreieckszahlen
67161
8515
300
55
1
Hier die Mappe: https://www.herber.de/bbs/user/70758.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Schmankerl: 5 Dreieckszahlen
26.07.2010 18:34:07
alifa
Hallo Erich,
vielen Dank und besonders für das Schmankerl. Geht das auch rechtsbündig?
Viele Grüße,
Erhard
Schmankerl rechtsbündig
27.07.2010 17:31:03
Erich
Hi Erhard,
klar, das geht auch. Und bringt 39 Lösungen - viele davon schön symmetrisch zur gedachten Diagonalen.
In Zeile 1 werden jetzt die Lösungen gezählt.
Hier die Mappe: https://www.herber.de/bbs/user/70782.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.: ich mailde mich in einer guten Woche wieder - wg. Urlaub...
Anzeige
AW: Schmankerl rechtsbündig
28.07.2010 06:46:00
alifa
Hallo Erich,
keine der 39 Lösungen erfüllt die Bedingung: Alle Dreieckszahlen müssen verschieden sein. Also alle 10. Ich danke für die Makros und wünsche einen gesundheitsfördernden Urlaub!
Viele Grüße,
Erhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige