Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1232to1236
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

Franz (fcs) - bitte um Hilfe!

Franz (fcs) - bitte um Hilfe!
Markus
Hallo Franz,
Du hast mir fast vor einem Jahr einen Code geschrieben. Ist in der Datei enthalten.
https://www.herber.de/bbs/user/76945.xls
Mit diesem Code werden die Einträge aus dem gelben Bereich ordentlich in den grünen Bereich kopiert.
Nun müsste eine Codeänderung vorgenommen werden. Genauer gesagt, sollen die Werte bis zum ; in den grünen Berreich kopiert werden - also auch Buchstaben. Bei N12 z.B. M542 ; M542 V
M542
M542 V
Die Stellen zwischen dem letzten Zeichen und dem ; sollen immer entfernt werden.
Kannst Du mir hier noch einmal helfen?
Viele Grüße
Markus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Franz (fcs) - bitte um Hilfe!
10.10.2011 19:39:18
fcs
Hallo Markus,
da muss nur die Prüfung auf Leerzeichen und die anschliessende Zeile aus dem Code gelöscht werden.
Gruß
Franz

Sub SpalteN_nach_A()
Dim wks As Worksheet
Dim Zeile_N As Long, Zeile_A As Long, StatusCalc As Long
Dim vZelle_N, iIndex As Long, sText As String
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
If StatusCalc  xlCalculationManual Then .Calculation = xlCalculationManual
.EnableEvents = False
End With
Set wks = ActiveSheet
With wks
Zeile_A = 12
For Zeile_N = 12 To .Cells(.Rows.Count, 14).End(xlUp).Row
vZelle_N = Split(.Cells(Zeile_N, 14), ";")
If UBound(vZelle_N) = -1 Then 'Zelle in Spalte N ist leer
.Cells(Zeile_A, 1).ClearContents
Zeile_A = Zeile_A + 1
If Zeile_A > .Rows.Count Then
MsgBox "Alle Zeilen der Tabelle sind mit Daten gefüllt!"
GoTo Beenden
End If
Else
For iIndex = LBound(vZelle_N) To UBound(vZelle_N)
sText = Trim(vZelle_N(iIndex))
.Cells(Zeile_A, 1).Value = sText
Zeile_A = Zeile_A + 1
If Zeile_A > .Rows.Count Then
MsgBox "Alle Zeilen der Tabelle sind mit Daten gefüllt!"
GoTo Beenden
End If
Next
End If
Next
End With
Beenden:
With Application
.ScreenUpdating = True
.Calculation = StatusCalc
If StatusCalc  .Calculation Then .Calculation = StatusCalc
.EnableEvents = True
End With
End Sub

Anzeige
AW: Franz (fcs) - bitte um Hilfe!
10.10.2011 20:00:47
Markus
Hallo Franz,
das ging ja fix. Vielen Dank!
Könntest Du mir dann bitte noch einmal helfen. In den grünen Bereich A12 bis variables Ende werden nun ja die Kürzel eingetragen.
1)
Nun will ich alle Eintragungen im grünen Bereich löschen, wenn sie mit einem Buchstaben enden und der Buchstabe nicht A, V oder Z lautet. Also Beispiel:
M542 V = Zellinhalt stehen lassen, da V am Ende
M542 A = Zellinhalt löschen
Wichtig ist aber, dass das nur passieren darf, wenn das letzte Zeichen ein Buchstabe ist.
2)
Nun kann es aber passieren, dass es auch folgendes Kürzel gibt:
I300B Z = Zellinhalt stehen lassen, da Z am Ende
I300B M = Zuers M entfernen, dann weiter prüfen. Da B am Ende, Zellinhalt löschen.
Wäre das verständlich ? Kannst Du mir hier auch noch einmal helfen? Eine Lösung für 1 und eine 2. Ich bin mir nämlich nicht sicher, auf welche Lösung es schließlich hinausläuft.
Wäre super! Vielen Dank!
Viele Grüße
Markus
Anzeige
AW: Franz (fcs) - bitte um Hilfe!
10.10.2011 21:00:55
Markus
offen vergessen
AW: Franz (fcs) - bitte um Hilfe!
10.10.2011 21:36:12
fcs
Hallo Markus,
das Ende der Texte wird vor dem Eintragen in Spalte A geprüft und der Text nicht eingetragen. Das ist in der Summe einfacher abzuarbeiten.
Gruß
Franz

Sub SpalteN_nach_A()
Dim wks As Worksheet
Dim Zeile_N As Long, Zeile_A As Long, StatusCalc As Long
Dim vZelle_N, iIndex As Long, sText As String
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
If StatusCalc  xlCalculationManual Then .Calculation = xlCalculationManual
.EnableEvents = False
End With
Set wks = ActiveSheet
With wks
Zeile_A = 12
For Zeile_N = 12 To .Cells(.Rows.Count, 14).End(xlUp).Row
vZelle_N = Split(.Cells(Zeile_N, 14), ";")
If UBound(vZelle_N) = -1 Then 'Zelle in Spalte N ist leer
.Cells(Zeile_A, 1).ClearContents
Zeile_A = Zeile_A + 1
If Zeile_A > .Rows.Count Then
MsgBox "Alle Zeilen der Tabelle sind mit Daten gefüllt!"
GoTo Beenden
End If
Else
For iIndex = LBound(vZelle_N) To UBound(vZelle_N)
sText = Trim(vZelle_N(iIndex))
GoTo Variante_2 'für Variante 1 diese Zeile zu Kommentar machen
Variante_1:
'Ende des Textes prüfen (Variante 1)
If Len(sText) > 0 Then
Select Case Right(sText, 1)
Case "0" To "9", "A", "V", "Z"
.Cells(Zeile_A, 1).Value = sText
Zeile_A = Zeile_A + 1
Case Else
'do nothing, Wert nicht eintragen
End Select
End If
GoTo Weiter03
Variante_2:
'Ende des Textes prüfen (Variante 2)
If Len(sText) > 0 Then
Select Case Right(sText, 1)
Case "0" To "9", "A", "V", "Z"
.Cells(Zeile_A, 1).Value = sText
Zeile_A = Zeile_A + 1
Case Else
Do
'letztes Zeichen + evtl. Leerzeichen abtrennen
sText = Trim(Left(sText, Len(sText) - 1))
If Len(sText) = 0 Then Exit Do
If IsNumeric(Right(sText, 1)) Then Exit Do 'nur unzulässige Buchstaben
Select Case Right(sText, 1)
Case "A", "V", "Z"
.Cells(Zeile_A, 1).Value = sText
Zeile_A = Zeile_A + 1
Exit Do
Case Else
'do nothing - Schleife wiederholen
End Select
Loop
'do nothing, Wert nicht eintragen
End Select
End If
Weiter03:
If Zeile_A > .Rows.Count Then
MsgBox "Alle Zeilen der Tabelle sind mit Daten gefüllt!"
GoTo Beenden
End If
Next
End If
Next
End With
Beenden:
With Application
.ScreenUpdating = True
.Calculation = StatusCalc
If StatusCalc  .Calculation Then .Calculation = StatusCalc
.EnableEvents = True
End With
End Sub

Anzeige
AW: Franz (fcs) - bitte um Hilfe!
12.10.2011 19:59:45
Markus
Hallo Franz,
lag mit Erkältung flach, daher kann ich mich leider erst jetzt melden. Sorry!
FUnktioniert bei Dir der Code? Bei wird gar nichts eingefügt, wenn ein Kürzel mit V endet. Ohne V wird kopiert.
VIelen Dank!
Viele Grüße
Markus
AW: Franz (fcs) - bitte um Hilfe!
12.10.2011 20:06:45
Markus
Hallo Franz,
es passiert doch was. :-)
Bin wohl noch krank. MUss mir das in Ruhe anschauen. Ich melde mich bei Dir.
Danke vorab!
Viele Grüße
Markus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige