Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1544to1548
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: Ohne Hilfsspalte Zeichen ergänzen & format

Makro: Ohne Hilfsspalte Zeichen ergänzen & format
16.03.2017 09:54:31
Marcel
Hallo zusammen,
ich habe in Spalte A Artikelnummern stehen die entweder 9 oder 10 Zeichen haben. Wenn die Artikelnummern 9 Zeichen haben liegt das daran, dass eigentlich eine "0" vorangestellt sein müssten. Außerdem soll noch zwischen 3. und 4. sowie 8. und 9 Stelle ein Punkt eingefügt werden.
Im Prinzip diese Formatierung: "0#\.####\.####"
Ich möchte es aber nicht nur so formatiert haben, dass es so aussieht sondern, dass die Zahlen so tatsächlich in der Spalte stehen.
Ich habe das leider nur über Formeln und zwei Hilfsspalten hinbekommen:
=RECHTS(WIEDERHOLEN("0";14)&A1;10)
=VERKETTEN(LINKS(A1;2);".";TEIL(A1;3;4);".";RECHTS(A1;4))
Könnt ihr mir helfen, wie das als Makro ohne Hilfsspalten funktioniert?
Danke und Grüße
Marcel

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Ohne Hilfsspalte ...
16.03.2017 10:06:09
Bernd
Hi,
meinst Du so:
00"."0000"."000
MfG Bernd
Über VBA
16.03.2017 10:13:23
Sven

dim z as Range
dim artikel as String
for each z in range("A1:A10000")    'Bereich anpassen
if z.value="" then exit for
artikel=z.value
if len(artikel) = 9 then artikel = "0" & artikel
artikel=str(format(artikel,"00.0000.0000"))
z.value=artikel
next

Grüße
Sven
Fehler in Formel
16.03.2017 10:31:12
Marcel
Hallo Sven,
leider bringt er einen Fehler in diesem Bereich bei format: artikel = Str(format(artikel, "00.0000.0000"))
Kannst Du nochmal helfen?
Grüße
Marcel
AW: Fehler in Formel
16.03.2017 11:52:07
Sven

Option Explicit
Public Sub ArticleFormat()
Dim z As Range
Dim artikel As String
For Each z In Tabelle1.Range("A1:A10000")    'Bereich anpassen
If z.Value = "" Then Exit For
artikel = Replace(Str(z.Value), " ", "")
If Len(artikel) = 9 Then artikel = "0" & artikel
artikel = Left(artikel, 2) & "." & Mid(artikel, 3, 4) & "." & Mid(artikel, 7, 4)
z.Value = artikel
Next
End Sub

Anzeige
Danke!
16.03.2017 13:54:14
Marcel
Hallo Sven,
vielen Dank - funktioniert prima!!!
Viele Grüße
Marcel
AW: Danke! und zu...
16.03.2017 13:59:57
robert
Noch nicht schließen bitte
16.03.2017 15:48:50
Marcel
Wie schaffe ich es, dass das Makro in allen Tabellenblättern angewendet wird?
Danke und Gruß
so ?
16.03.2017 16:14:31
robert

Public Sub ArticleFormat()
Dim z As Range
Dim artikel As String
Dim wks As Worksheet
For Each wks In ThisWorkbook.Sheets
For Each z In wks.Range("A1:A10000")    'Bereich anpassen
If z.Value = "" Then Exit For
artikel = Replace(Str(z.Value), " ", "")
If Len(artikel) = 9 Then artikel = "0" & artikel
artikel = Left(artikel, 2) & "." & Mid(artikel, 3, 4) & "." & Mid(artikel, 7, 4)
z.Value = artikel
Next
Next wks
End Sub

Anzeige
Fehler in Formel
17.03.2017 09:56:40
Marcel
Hi Robert,
Danke, aber bei Dir ist noch irgendwo ein Fehler in der Zeile:
artikel = Replace(Str(z.Value), " ", "")
Viele Grüße
Marcel
getestet-kein Fehler bei mir-owT
17.03.2017 15:26:05
robert
Mit der Format-Funktion...
16.03.2017 19:28:57
{Boris}
Hi,
...geht es auch so:
Option Explicit
Sub oder_so()
Dim C As Range, Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
For Each C In Ws.Range("A1:A1000")
If C  "" Then C = Format(C, "00\.0000\.0000")
Next C
Next Ws
End Sub
VG, Boris
Danke - funktioniert
17.03.2017 09:57:52
Marcel
Hi Boris,
danke, Deine Version funktioniert!
Viele Grüße
Marcel
=TEXT(A1;"00\.0000\.0000")
16.03.2017 11:15:36
{Boris}
VG, Boris
Makro: Artikelnummern anpassen
16.03.2017 12:30:23
Rudi
Hallo,
Sub ArtNummer()
Dim vArr, i As Long
vArr = Cells(1, 1).CurrentRegion.Resize(, 1)
For i = 2 To UBound(vArr)
vArr(i, 1) = Format(CLng(vArr(i, 1)), "00"".""0000"".""0000")
Next
Cells(1, 1).Resize(UBound(vArr), UBound(vArr, 2)) = vArr
End Sub
Gruß
Rudi
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige