💚 BITTE helfen Sie uns NOCH HEUTE mit einer SPENDE 💚
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

zellformat mac-adresse

CALC ist die Tabellenkalkulation, die Sie immer wollten.
berndk
Beiträge: 6
Registriert: Di 30. Okt 2018, 14:14

zellformat mac-adresse

Beitrag von berndk » Di 30. Okt 2018, 14:30

Hi,

ich bin kein scriptprofi und versuche trotzdem eines zu erstellen.
Mein Ziel ist in einer bestimmten zelle einen 12-stelligen String in eine MAC-Adresse zu wandeln.
mein Versuch bisher:

Code: Alles auswählen

Sub macAdresse_formatieren

with thisComponent.sheets(0)
   for zi = 5 to 34							'für diese Zeilen soll das Script gültig sein
   if .getcellbyposition(11,zi).string = "1" then			'Auswahl Prügkriterium in Spalte E
   		'mycell = mysheet.getCellByPosition(4,zi)
    	.getcellbyposition(4,zi).string = CONCATENATE(Mid((.getcellbyposition(4,zi).string), 1, 2)&":"&Mid((.getcellbyposition(4,zi).string), 3, 2)&":"&Mid((.getcellbyposition(4,zi).string), 5, 2)&":"& Mid((.getcellbyposition(4,zi).string), 7, 2)&":"& Mid((.getcellbyposition(4,zi).string), 9, 2)&":"& Mid((.getcellbyposition(4,zi).string), 11, 2))
    else
    	.rows(zi).isvisible = false					'nicht benötigte Zeilen auswählen und ausblenden
   end if
   next
end with

End Sub
führte noch nicht zum Erfolg.
Spalte 11 ist eine Hilfsspalte von der ich dachte, dass sie hilfreich ist. Muss aber nicht.

Vielleicht kann mir jemand helfen.

Beste Grüße
berndk

Lupo
Beiträge: 279
Registriert: Do 11. Okt 2012, 14:22

Re: zellformat mac-adresse

Beitrag von Lupo » Di 30. Okt 2018, 14:37

=TEXT(Zahlenstring*1;"#.##0") oder, falls mit leading zero:
=TEXT(Zahlenstring*1;"000.000.000.000")

lässt sich auch in VBA oder BASIC verwenden. In VBA heißt das Äquivalent "Format".
MfG Lupo - xxcl.de Win10ProLO6062

berndk
Beiträge: 6
Registriert: Di 30. Okt 2018, 14:14

Re: zellformat mac-adresse

Beitrag von berndk » Di 30. Okt 2018, 14:48

ertmal danke Lupo,

aber eine Mac-Adresse besteht ja aus Ziffern und Buchstaben. Bsp: 1b:2c:3d:44:55:66. So sollte es auch in der Zelle formatiert werden. Wenn ich Deine Lösungen unter Zelle > Formatieren eingebe, habe ich kein Erfolg.

Lupo
Beiträge: 279
Registriert: Do 11. Okt 2012, 14:22

Re: zellformat mac-adresse

Beitrag von Lupo » Di 30. Okt 2018, 15:11

Stimmt ... ich habe statt MAC falsch IP gelesen/verstanden. Ist immer gut, in der Frage die Antworter gleich richtig hinzustupsen mit einem Beispiel.

Dann hast Du keine Zahlenformat-Chance, da HEX kein TEXT()-kompatibles numerisches Format ist. Aber:

{=VERBINDEN(":";;TEIL("2D3E5A9E5676";SPALTE($A2:$F2)*2-1;2))} ist gleich mit dem vorher noch in HEX umzuwandelnden
{=VERBINDEN(":";;DEZINHEX(CODE((TEIL("->ZžVv";SPALTE($A2:$F2);1)))))}
MfG Lupo - xxcl.de Win10ProLO6062

berndk
Beiträge: 6
Registriert: Di 30. Okt 2018, 14:14

Re: zellformat mac-adresse

Beitrag von berndk » Di 30. Okt 2018, 16:09

Hallo Lupo,

ich bin mir jetzt nicht ganz klar ob ich das verstanden habe.
a) es sind Matrixformeln, richtig.
Gültig soll das Format für den Zellbereich von E5:E34 sein. Wie könnte ich da Deine Matrixformel anpassen?

b) die MAC-Adresse: deswegen dachte ich an verketten mit

Code: Alles auswählen

CONCATENATE(Mid((.getcellbyposition(4,zi).string), 1, 2)&":"&Mid((.getcellbyposition(4,zi).string), 3, 2)&":"&Mid((.getcellbyposition(4,zi).string), 5, 2)&":"& Mid((.getcellbyposition(4,zi).string), 7, 2)&":"& Mid((.getcellbyposition(4,zi).string), 9, 2)&":"& Mid((.getcellbyposition(4,zi).string), 11, 2))
Klappt nur eben nicht. 4 steht hier für Spalte und zi für reihe.
heißt für mich:
immer wenn ich in dieser Spalte einen 12-stelligen String eingebe, soll sich die jeweilige Zelle nach dem betätigen der Entertaste aktualisieren.

Oder verstehe ich bei Deinem Bsp. irgend etwas falsch?

Lupo
Beiträge: 279
Registriert: Do 11. Okt 2012, 14:22

Re: zellformat mac-adresse

Beitrag von Lupo » Di 30. Okt 2018, 16:35

Ich kenne mich mit CALC-Basic nicht aus und habe daher die Tabellenformel genommen.

Diese musst Du nun selbst verwenden. In Excel ist die Verwendung von Tabellenformeln in VBA kein Problem. Das ist dort ein erheblicher Punkt für weiter verwendbares Humankapital.
MfG Lupo - xxcl.de Win10ProLO6062

mikele
Beiträge: 1659
Registriert: Mo 1. Aug 2011, 20:51

Re: zellformat mac-adresse

Beitrag von mikele » Di 30. Okt 2018, 17:12

Hallo,
das Verketten In Basic übernimmt doch schon & ...

Code: Alles auswählen

Sub macAdresse_formatieren

with thisComponent.sheets(0)
   for zi = 5 to 34							'für diese Zeilen soll das Script gültig sein
   if .getcellbyposition(11,zi).string = "1" then			'Auswahl Prügkriterium in Spalte E
   	oCell= .getCellByPosition(4,zi)
   	sAlt=oCell.String
   	sNeu=Mid(sAlt,1,2) & ":" & Mid(sAlt,3,2) & ":" & Mid(sAlt,5,2) & ":" & Mid(sAlt,7,2) & ":" & Mid(sAlt,9,2) & ":" & Mid(sAlt,11,2)
    	oCell.string = sNeu
    else
    	.rows(zi).isvisible = false					'nicht benötigte Zeilen auswählen und ausblenden
   end if
   next
end with

End Sub
Gruß,
mikele

Lupo
Beiträge: 279
Registriert: Do 11. Okt 2012, 14:22

Re: zellformat mac-adresse

Beitrag von Lupo » Di 30. Okt 2018, 18:46

mikele hat geschrieben:
Di 30. Okt 2018, 17:12
sNeu=Mid(sAlt,1,2) & ":" & Mid(sAlt,3,2) & ":" & Mid(sAlt,5,2) & ":" & Mid(sAlt,7,2) & ":" & Mid(sAlt,9,2) & ":" & Mid(sAlt,11,2)
For i = 1 to 6: sNeu = sNeu & Mid(sAlt, i * 2 - 1, 2) & " ": Next: sNeu = Replace(Trim(sNeu, " ", ":"))

als vielleicht vom TE beabsichtigte Alternative. Replace und Trim sind die VBA-Funktionen; heißen hier ja vielleicht genauso.
MfG Lupo - xxcl.de Win10ProLO6062

berndk
Beiträge: 6
Registriert: Di 30. Okt 2018, 14:14

Re: zellformat mac-adresse

Beitrag von berndk » Di 30. Okt 2018, 20:15

@ Mikele,
Danke, das Script läuft. Aber ich habe in meiner Erstausführung wohl einen Fehler begangen.
Das Script soll generell für den Bereich $E4:$E34 gültig sein. Mein Gedanke war, wenn ich in der jeweilgen Zeile in Spalte E den eingegebenen Wert durch betätigen der Entertaste neu formatiere, dann eben nur in dieser Zelle - nicht aber im ganzen Spaltenbereich. Momentan formatiert( oder wandelt ) er ja in dem ganzen Bereich den Wert, sofern die Prüfspalte den Wert 1 enthält. Egal ob schon einmal neu formatiert oder nicht, er fügt immer weitere ":" hinzu. War so nicht beabsichtigt.
Der Wert 1 in der Prüf( hilfs )spalte ergibt sich aus einer hinterlegten Formel und bildet sich, wenn ein Wert in Spalte E eingetragen wird. Und genau dann soll ja das Makro ausgelöst werden. So mein Gedanke.
Für Fragen bin ich dankbar.

@Lupo,
Danke. Das Script führt schon zur richtigen Schreibweise. Optimal wäre nur, wenn die Buchstaben dann in GROSS angezeigt werden könnten. Ucase führt hier aber zum teilweisen entziehen der Ziffern. Muss man wohl mit leben.

mikele
Beiträge: 1659
Registriert: Mo 1. Aug 2011, 20:51

Re: zellformat mac-adresse

Beitrag von mikele » Di 30. Okt 2018, 21:20

Hallo,
verstehe ich dich richtig: Wenn du in der Spalte E einen Ausdruck (12 Zeichen) eingibst, dass er dann automatisch in eine Mac-Adresse gewandelt wird (mit Großbuchstaben)?
Gibt es noch eine andere Bedingung? Die Hilfsspalte mit Formel deutet ja an, dass da vielleicht noch mehr geprüft wird.
Wie passt das Ausblenden der Zeilen hier dazu?
Gruß,
mikele

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten