388 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich möchte in einer ActivenCell (als Text formatiert) überprüfen, ob ein "M" vorhanden ist. ist das der Fall, so soll das "M" entfernt werden, aber das Textformat soll dabei erhalten werden da die verbleibende Zahl größer als die Spaltenbreite ist.

Beispiel: Ist M128165 Soll 128165
Ist 128165 Soll 128165

freind

4 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

wenn der genannte Wert in A1 steht, funktioniert folgende Formel

=WENN(ISTZAHL(FINDEN("M";A1));WECHSELN(A1;"M";"");A1)

Gruß
Rainer
0 Punkte
Beantwortet von
Hi all ^^

Oder als Makro!

Gruß Nighty

Einzufügen
Alt+F11/Projektexplorer/DeineTabelle

Target.Column = 1
steht für Spalte A

Ab Zeile 2

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Row > 1 Then Cells(Target.Row, Target.Column) = Mid(Target, InStr(Target, "M") + 1, Len(Target))
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet von
Hallo,

vielen Dank für die Hilfe, Antwort an Euch beiden, reinberg und nightby.
Das mit der Formel klappt einwandfrei, aber ich habe vergessen, dass ich das ganze als VBA benötige. Enschuldigung reinberg.

Das Beispiel in VBA klappt so auch nicht, auch das ist mein Fehler, wenn man nicht ausführlich das Problem erklärt.
Nun will ich das anhand eines Teiles von meinem Makro erklären.

'------------------------------------------------
'Muster-Kalkulation archivieren ins Archivblatt und Daten ins Muster-Kalk.-Inhaltsverzeichnis eintragen
'------------------------------------------------
'
Sub MusterKalkulationArchivieren()
'
'
Application.ScreenUpdating = False
'
Sheets("MusterArchiv").Select
'
ActiveSheet.Unprotect "freind"
'
Range("A1").Select
If ActiveCell.Value = "" Then Exit Sub
ActiveCell.Offset(70, 0).Range("A1").Select
'
NochMal:
If ActiveCell.Value = "" Then GoTo weiter
ActiveCell.Offset(70, 0).Range("A1").Select
GoTo NochMal
'
weiter:
ActiveCell.Select
ActiveSheet.Unprotect "freind"
Sheets("Kalkulation").Select
'=======================================================================
'''''''''''DAS PROBLEM:
' --------------
'wenn die Kalkulation erstmalig als Muster-Kalkulation abgespeichert archiviert wird (ohne Rechenformeln),
'wird am Anfang der vergebenen Artikelnummer automatisch ein "M" gesetzt, das soll auch so bleiben,
'denn das ist das Zeichen dafür, dass es erst eine Bemusterung ist.
'Wird diese Kalkulation zum nachbessern in das Blatt mit den Rechenfunktionen zurückgeholt und wieder in
'das Musterarchiv zurückarchiviert und es steht da schon als 1.Zeichen ein "M" und das vorhandene M wird
'nicht gelöscht, stehen vor der Artikelnummer zweimal M, z.B. MM876543.
'Die Zelle ist als Text formatiert und soll es auch bleiben, da die Zahl nicht in die Spaltenbreite passt!
'Es müsste also vorher eine Prüfung erfolgen, ob bei der Arikelnummer am Anfang schon ein M steht und
'wenn ja, dieses erst löschen, um es danach wieder anzufügen.
'Das ist auch darum erforderlich, wenn der Artikel in die Produktion aufgenommen wird,
'wird das Kalkulationsblatt im Archivblatt der laufenden Produktion ohne M, nur die Artikelnummer Archiviert
'und auch da muss vorher eine Prüfung erfolgen und ein vorhandenes M gelöscht werden.

'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


'========================================================================
Range("B4").Select 'das M der Artikelnummer voranstellen
ewert10 = ActiveCell
ActiveCell = ("M") & ewert10
'========================================================================
Range("A1:S70").Select
Selection.Copy
Sheets("MusterArchiv").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.Locked = True
ActiveCell.Offset(0, 1).Select
'...............................................................................
'Anfangszelle(Datum)Koordinaten auslesen und 2 Zellen darunter(unter dem Namen)
'imder neuen,archivierten Muster-Kalkulation zum zurückführen ins Archiv nach der Korrektur eintragen
ActiveCell.Offset(0, -1).Range("A1").Select
ZeilNr = ActiveCell.Row
ActiveCell.Offset(2, 0) = ActiveCell.Address
'...............................................................................
'Datum Heute löschen.................
ActiveCell.Offset(0, 2).Select
ActiveCell.ClearContents
ActiveCell.Offset(0, -2).Select
'....................................
'Reihe Nr Zum finden der korrigierten Zeile zu Artikel Nr.Archiv
ArtNrZellArchiv = ActiveCell.Row
ewert8 = ArtNrZellArchiv
ArtNrZellArchiv = ewert8
'Reihe Nr zum finden der korrigierten Zeile zu Artikel Nr.Archiv

u.s.w.



Teil-Inhalt vom Kalkulations-Blatt

18.10.2016 korrig. 01.11.16 .
freind
$A$211
Artikelnummer : M876543
Artikelbebeschreibung: bgsadhjdfasdirjgsdifot
Material Verkaufsbreite 160
Flächenmasse gr / qm ca 160 Fertigbreite 162 roh 166
Verkaufsbreite cm ca 160 Maschenstäbchen 10 cm 10 roh 10
Maschenstäbchen 10 cm 10 Maschenreihen 10 cm 20 roh 20
Maschenreihen 10 cm 20 Flächenmasse ca. 160 roh 158
Flächenmasse roh 158 Länge roh
Rohbreite cm 166 Bindung gafshagdfuehjrhtkjdfg
Rohlänge mtr Stricker mydshtsgfndszuraiyskjedfkd
Bindung gafshagdfuehjrhtkjdfg % Prozentanteile Material kg / 100m € / kg
1.Material Euro / 100mtr tex 30 / 1 518,40 € 1. Mat. 100 tex 30 / 1 hssgdtbhfdj 25,92 20,00 €
2.Material Euro / 100mtr 2. Mat. / 0,00
3.Material Euro / 100mtr 3. Mat. / 0,00
4.Material Euro / 100mtr 4. Mat. / 0,00
Gesamt Material Euro / 100 lfm 518,40 € 100 Summe 25,92 20,00 €
Fracht / Verpackung 1 kg / Euro 0,50 0,50 12,96 € Bemerkung :
Verarbeitungs + Ausrüstverlust % % 6 6 31,10 €
Materialkosten 100 lfm 562,46 € Maschine : E24 30"
Garnlager / Garnprüfung % % 3 3 16,87 € Rippscheibenhöhe : Breithalter cm :
Stricker mydshtsgfndszuraiyskjedfkd € / 1 kg 3,00 77,76 € Rohwaufmachung : shlauch
€ / 1kg Fertigwaufmachung : reitgerollt
€ / 1m Fadenverbr cm / Syst / 1
€ / 1m 1 Umdrehung 2
Bewertung Roware 100 lfm 657,09 € 3
dämpfen € / 1m 0,50 50,00 € 4
€ / 1m
€ / 1m Bem.
€ / 1m
€ / 1kg
Fertigwarenschau 100mtr / Euro 25,- 25,00 25,00 €
Bewertung Fertigware 100 lfm 732,09 €
Risiko für II. Wahl % % 2 2 14,64 €
Verpackung / Versand Fixkosten / 100 mtr 36 36,00 36,00 €
Verwaltung / Vertrieb % % 30 30 219,63 €
Delkredere / Rücklage für Verlust-Risiko % % 1,5 1,5 15,04 €
0 Punkte
Beantwortet von
Hallo an Rainer,
Hallo Nighty,

Danke für Euere Hilfe,

durch Nachdenken über Euere Beispiele,
ich konnte mein Problem so beheben:

ActiveCell.Value = Replace(ActiveCell.Value, "M", "")

Ist in der Zeichenfolge kein M vorhanden, passiert nichts.
Ist in der Zeichenfolge ein M vorhanden, wied es entfernt und auch das Format Text bleibt erhalten.

Danke freind
...