Anzeige
Archiv - Navigation
1568to1572
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

Sprechtafel

Sprechtafel
27.07.2017 20:53:24
Maruxxx
Hallo cracks,
ich brauche Hilfe bei der Generierung einer neuen Zahl bzw. Buchstaben via Button bei einer Sprechtafel.
Meine Vorschlag für Bereich Numeral-Code wäre bei B4 eine Generierung und alle folgenden Zahlen bzw. Buchstaben ordnen sich der Reihe nach. Die Schwierigkeit ist hierbei: Nur Zahlen in der Reihenfolge von 1-9 und nach 9 das Alphabet (tlw.) unterbochen. Siehe Anhang oder Bild:
Userbild
https://www.herber.de/bbs/user/115088.xls

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sprechtafel
28.07.2017 08:14:06
UweD
Hallo
Was genau soll gemacht werden bzw. was ist vorgegeben?
B3 bis N3 und A4 bis A16
Was soll im hinteren Bereich (Autentisierungs- code) geschehen?
AW: Sprechtafel
28.07.2017 09:42:14
Maruxxx
Im ersten Step muss ich den Bereich Numeral-Code von B4 bis N16 auf Wunsch per Button neu generieren.
Die nachfolgenden Zahlen sollen sich numerisch bis 9 erhöhen. Nach 9 beginnend mit dem Alphabet (wie im Bild zu sehen) aber nur vier Buchstaben dann wieder 0-9, anschließend weiterführend das unterbrochene Alphabet. Genial wäre natürlich wenn zeitgleich sich die Buchstabenreihe in 3 und Spalte A ebenso neu generieren. Es dürfen sich in der y und x Achse keine Buchstaben wiederholen.
Das Feld B4 bekomm ich mit nem Button hin aber wie soll sich der Rest denn logisch mitverändern?
Den Autentisierungsbereich natürlich analog dem Numeral-code, wobei hier nur Zahlen im zweistelligen Bereich von 10-99 ohne Logig zu generieren sind.
Sorry, für mich noch zu hoch....
Anzeige
AW: Sprechtafel
28.07.2017 10:50:06
UweD
Hallo
Teil 1 ) B4:N16
das Beispiel entspricht nicht deiner Vorgabe
Nach der 9 in N7 müsste in B8 ein M stehen
und nicht wie bei dir eine weitere 9
Ausserdem fügst du dann nur noch 3 Buchstaben ein...
Nach der Beschreibung wäre es so möglich:
Sub Num_code()
    Dim SP As Integer, ZE As Integer, WE As Integer, K As Integer, LB As Integer
    WE = 48
    Range("B4:N16").ClearContents
    For ZE = 4 To 16
        For SP = 2 To 14
            Cells(ZE, SP) = Chr(WE)
            If Not IsNumeric(Chr(WE)) Then K = K + 1
            If K = 4 Then 'nach 4 Buchstaben 
                M = 1
                LB = WE 'Letzer Buchstabe merken 
                WE = 47 'Zahlen einschieben 
                K = 0
                
            End If
            If WE = 57 Then
                K = 0
                If M = 0 Then
                    WE = 65
                Else
                    WE = LB + 1
                End If
            ElseIf WE = 90 Then
                LB = 64
                WE = 48
            Else
                WE = WE + 1
            End If
        Next SP
    Next ZE

End Sub

Tabelle1
 ABCDEFGHIJKLMN
3 DAINRTXFKPVZG
4C0123456789ABC
5JD0123456789EF
6OGH0123456789I
7SJKL0123456789
8MMNOP012345678
9H9QRST01234567
10L89UVWX0123456
11Q789YZ01234567
12U89ABCD0123456
13W789EFGH012345
14E6789IJKL01234
15B56789MNOP0123
16Y456789QRST012
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 21.10 einschl. 64 Bit


LG UweD
Anzeige
AW: Sprechtafel
28.07.2017 13:44:24
UweD
Hallo nochmal
so?
Sub Num_code()
    Dim SP As Integer, ZE As Integer, WE As Integer, K As Integer, LB As Integer
    
    WE = 48 'mit 0 beginnen 
    
    Application.ScreenUpdating = False
    Range("A3:T16").ClearContents 'reset 
    
    For ZE = 4 To 16
        For SP = 2 To 14
            Cells(ZE, SP) = Chr(WE)
            
            If Not IsNumeric(Chr(WE)) Then K = K + 1 'bei Buchstaben nur bis 4 
            If K = 4 Then 'nach 4 Buchstaben 
                M = 1
                LB = WE 'Letzer Buchstabe merken 
                WE = 47 'Zahlen einschieben 
                K = 0
            End If
            
            If WE = 57 Then 'Wenn bei 9 dann zu A 
                K = 0
                If M = 0 Then
                    WE = 65
                Else
                    WE = LB + 1
                End If
                
            ElseIf WE = 90 Then ' bei Z wieder neu beginnen 
                LB = 64
                WE = 48
            
            Else
                WE = WE + 1
            End If
        Next SP
    Next ZE

    'temporäres Blatt erzeugen 
    Sheets.Add after:=Sheets(Sheets.Count)
    With ActiveSheet
        .Range("A1:A26").FormulaR1C1 = "=RAND()+NOW()"
        .Range("B1:B26").FormulaR1C1 = "=CHAR(ROW()+64)"
        .Range("B1:B26").Value = .Range("B1:B26").Value
        .Sort.SortFields.Add Key:=Range("A1"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortTextAsNumbers
        With .Sort
            .SetRange Range("A1:B26")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        
        Sheets("Tabelle1").Range("B3:N3").Value = _
            WorksheetFunction.Transpose(.Range("B1:B16"))
        Sheets("Tabelle1").Range("A4:A16").Value = _
            .Range("B14:B26").Value
        
        With .Sort 'neu mischen 
            .SetRange Range("A1:B26")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        
        Sheets("Tabelle1").Range("P3:T3").Value = _
            WorksheetFunction.Transpose(.Range("B1:B5"))
        Sheets("Tabelle1").Range("O4:O16").Value = _
            .Range("B14:B26").Value
        
        Application.DisplayAlerts = False
        .Delete
        Application.DisplayAlerts = True
                
    End With
    With Range("P4:T16") ' Doppelte möglich 
        .FormulaR1C1 = "=RANDBETWEEN(10,99)"
        .Value = .Value
    End With
        
End Sub
LG UweD
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige