Makro: was eine zahl senkrecht in zellen aufteilt
Hallo Leute,
Ich weiss das der Titel sehr verwirrend ist und ja es ist sehr kompliziert.
Ich versuche es zu erklären.
Ich bekomme eine xml datei wo input/output einer maschine aufgezeichnet werden.
Im grunde besteht das aus den Zahlen 1 - 10 vertikal geschrieben. (warum auch immer das so programmiert wurde)
1 5 usw...
2 2
3 1
4 5
5 3
6 1
7 10
8 1
9 6
10 2
die Zahl sagt jedes mal aus wann ein Input stattgefunden hat. alles davor war ein output.
Jetzt muss ich zwecks Statisik und evaluierung was wiederum von einem anderen Programm benötigt wird die Zahlen in o (output) und i (input) aufsplitten
Beispiel:
i = Input
o= output
1 2 3 4 5 6 usw...
i o o o o o
i o o o o
i o o o
i o o
i o
i
Bis jetzt kopiere ich die Zahlen in eine Excel Datei und muss händisch jede dieser Zeilen manuell umschreiben
Beispiel:
1
2
3
4
5
ist:
i
o
i
o
o
i
o
o
o
i
o
o
o
o
i
Gibt es ein Makro was das für mich machen kann. Das ich nur in einem Excel Blatt die Zahlen reinkopiere (zb.A-Z) und in einem anderen Blatt es auf (A-Z) in i-o umwandelt? (siehe bild)
LG
Ich weiss das der Titel sehr verwirrend ist und ja es ist sehr kompliziert.
Ich versuche es zu erklären.
Ich bekomme eine xml datei wo input/output einer maschine aufgezeichnet werden.
Im grunde besteht das aus den Zahlen 1 - 10 vertikal geschrieben. (warum auch immer das so programmiert wurde)
1 5 usw...
2 2
3 1
4 5
5 3
6 1
7 10
8 1
9 6
10 2
die Zahl sagt jedes mal aus wann ein Input stattgefunden hat. alles davor war ein output.
Jetzt muss ich zwecks Statisik und evaluierung was wiederum von einem anderen Programm benötigt wird die Zahlen in o (output) und i (input) aufsplitten
Beispiel:
i = Input
o= output
1 2 3 4 5 6 usw...
i o o o o o
i o o o o
i o o o
i o o
i o
i
Bis jetzt kopiere ich die Zahlen in eine Excel Datei und muss händisch jede dieser Zeilen manuell umschreiben
Beispiel:
1
2
3
4
5
ist:
i
o
i
o
o
i
o
o
o
i
o
o
o
o
i
Gibt es ein Makro was das für mich machen kann. Das ich nur in einem Excel Blatt die Zahlen reinkopiere (zb.A-Z) und in einem anderen Blatt es auf (A-Z) in i-o umwandelt? (siehe bild)
LG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 639646
Url: https://administrator.de/contentid/639646
Ausgedruckt am: 25.11.2024 um 16:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
ich zumindest habe nicht verstanden, wie aus den Zahlen i und o werden (sollen). Versuch es mit einer besseren Erklärung.
lks
Sub NummernErsetzen()
Dim wsSource As Worksheet, wsTarget As Worksheet, cell As Range, rngCell As Range, i as Long
Set wsSource = Sheets(1)
Set wsTarget = Sheets(2)
With wsSource
For Each cell In .UsedRange
If cell.Value <> "" And IsNumeric(cell.Value) Then
Set rngCell = wsTarget.Cells(Rows.Count, cell.Column).End(xlUp)
If rngCell.Value <> "" Then Set rngCell = rngCell.Offset(1, 0)
For i = 1 To CInt(cell.Value)
rngCell.Value = IIf(i <> CInt(cell.Value), "o", "i")
Set rngCell = rngCell.Offset(1, 0)
Next
End If
Next
End With
End Sub
Hatte eine Variable vergessen zu deklarieren ist oben korrigiert ...
Ja, jetzt ist es verständlicher.
Bluewonder's skript sollte das tun, was Du willst.
lks
Zitat von @semper:
1.
bis jetzt funktioniert es nur wenn ich das Makro manuell starte. kann man es einstellen das es sofort wenn man eine Zahl eintippt funktioniert?
Ja. Nimmst du das Worksheet_Change Event dafür1.
bis jetzt funktioniert es nur wenn ich das Makro manuell starte. kann man es einstellen das es sofort wenn man eine Zahl eintippt funktioniert?
Private Sub Worksheet_Change(ByVal Target As Range)
....
End Sub
2.
War meine schuld habe ich vergessen zu schreiben bei 10 gibt es am Ende kein i sondern nur 10x o (o o o o o o o o o o) . kann man das noch irgendwie einstellen?
Dann hast du die Zelle als Text formatiert anstatt Zahl, denn als Zahl funktioniert es problemlos. Habe oben aber noch zusätzlich eine explizite Umwandlung der Werte in einen Integer eingebaut.War meine schuld habe ich vergessen zu schreiben bei 10 gibt es am Ende kein i sondern nur 10x o (o o o o o o o o o o) . kann man das noch irgendwie einstellen?