Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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

Zeile kopieren, wenn in Spalte bestimmter Wert steht

Zeile kopieren, wenn in Spalte bestimmter Wert steht
18.09.2023 10:28:48
Daniel
Hallo an alle,

ich habe bei einem Makro folgendes Anliegen:

Aus einer Textdatei werden Daten importiert und entsprechend aufbereitet. Alle Teile, die in einer Spalte das Wort "Laserteil" enthalten, werden in einem anderem Blatt eingetragen.
Da ich den Sortiervorgang gerne erleichtern will, würde ich gerne das Makro erweitern.

Es soll nicht nur der Reiter "Laserteil" sondern noch weitere Reiter, wie z.B. "Laserteil Edelstahl" erzeugt und mit den Daten gefüllt werden, die den entsprechenden Betreff enthalten.

Zur Erklärung:
Tabelle1 = Arbeitsblatt, in den alle Informationen aus dem txt.-file importiert werden
Tabelle3 = Laserteile

Mein Problem: Sobald ich in der Zeile "For i = 1 To LetzteZeile
If Left(Cells(i, 10), 9) = "Laserteil" Then"
das Wort "Laserteil" durch "Laserteil Edelstahl" ersetze, wird der Reiter nicht gefüllt. (Zeile steht ungefähr in der Mitte des Codes).

Da ich leider keine VBA-Kenntnisse habe und da Makro von einem ehemaligen Kollegen erstellt wurde, würde ich gerne eure Hilfe in Anspruch nehmen.

Vielen Dank schon und Gruß
Daniel

Anbei der Code, der verwendet wird:

Sub H_Laserteile()


'erst mal alles löschen
Tabelle3.Select

Dim letztezeilem As Long
Dim letztespaltem As Long

Dim SortierWertG As String
Dim SortierWertC As String
Dim EndwertSortierung As String
Dim strTab3b As String
Dim strTab3Zeichensatz As String


' letztezeilem = Sheets(3).UsedRange.SpecialCells(xlCellTypeLastCell).Row
' letztespaltem = Cells(13, Columns.Count).End(xlToLeft).Column
letztezeilem = 1000
letztespaltem = 13


Range(Cells(25, 1), Cells(letztezeilem, letztespaltem)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

Range(Cells(25, 1), Cells(letztezeilem, letztespaltem)).Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.Font.Bold = False
Selection.RowHeight = 15
With Selection.Font
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.Size = 11
End With

Selection.ClearContents



Dim LetzteZeile As Integer
Dim i As Integer
Dim j As Integer
Dim Abmasse() As String
Dim LetzterWert As String
Dim strverzinkt() As String
Dim strGewichtRechnen As String



j = 25
Tabelle1.Select
LetzteZeile = Worksheets.Application.Max(Range("A:A")) + 1

For i = 1 To LetzteZeile
If Left(Cells(i, 10), 9) = "Laserteil" Then

Tabelle3.Cells(j, 2) = Tabelle1.Cells(i, 3).Value
Tabelle3.Columns("C:C").NumberFormat = "@"
Tabelle3.Cells(j, 3) = Tabelle1.Cells(i, 6).Value

Tabelle3.Cells(j, 4) = Tabelle1.Cells(i, 9).Value
Tabelle3.Cells(j, 5) = Tabelle1.Cells(i, 10).Value
Tabelle3.Cells(j, 6) = "Bl."
Abmasse = Split(Cells(i, 11), " x ")
Tabelle3.Cells(j, 7) = WorksheetFunction.Substitute(Abmasse(0), ".", ",") * 1


Tabelle3.Cells(j, 8) = WorksheetFunction.Substitute(Abmasse(1), ".", ",") * 1

Tabelle3.Cells(j, 9) = WorksheetFunction.Substitute(Abmasse(2), ".", ",") * 1

Tabelle3.Cells(j, 10).FormulaLocal = "=(G" & j & "*H" & j & "*I" & j & ")*7,85/1000000"
Tabelle3.Cells(j, 11).FormulaLocal = "=(G" & j & "*H" & j & "*I" & j & ")*7,85/1000000*B" & j

Tabelle3.Cells(j, 12).FormulaLocal = "=WENN(UND(G" & j & "=K$11;(UND(ODER(H" & j & ">3000;I" & j & ">1500);ODER(H" & j & ">1500;I" & j & ">3000))));L$11*J" & j & ";0)+WENN(UND(G" & j & "=K$12;(UND(ODER(H" & j & ">3000;I" & j & ">1500);ODER(H" & j & ">1500;I" & j & ">3000))));L$12*J" & j & ";0)+WENN(UND(G" & j & "=K$9;ODER(UND(H" & j & "=3000;I" & j & "=1500);UND(H" & j & "=1500;I" & j & "=3000)));L$9*J" & j & ";0)+WENN(UND(G" & j & ">=K$10;ODER(UND(H" & j & "=3000;I" & j & "=1500);UND(H" & j & "=1500;I" & j & "=3000)));L$10*J" & j & ";0)"
Tabelle3.Cells(j, 13).FormulaLocal = "=WENN(UND(G" & j & "=K$11;(UND(ODER(H" & j & ">3000;I" & j & ">1500);ODER(H" & j & ">1500;I" & j & ">3000))));L$11*K" & j & ";0)+WENN(UND(G" & j & "=K$12;(UND(ODER(H" & j & ">3000;I" & j & ">1500);ODER(H" & j & ">1500;I" & j & ">3000))));L$12*K" & j & ";0)+WENN(UND(G" & j & "=K$9;ODER(UND(H" & j & "=3000;I" & j & "=1500);UND(H" & j & "=1500;I" & j & "=3000)));L$9*K" & j & ";0)+WENN(UND(G" & j & ">=K$10;ODER(UND(H" & j & "=3000;I" & j & "=1500);UND(H" & j & "=1500;I" & j & "=3000)));L$10*K" & j & ";0)"


If Right(Tabelle1.Cells(i, 10), 8) = "verzinkt" Then
Tabelle3.Cells(j, 6) = "Bl. verzinkt"
End If

j = j + 1

End If
Next
Tabelle3.Select


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile kopieren, wenn in Spalte bestimmter Wert steht
18.09.2023 11:17:16
peter
Hallo

"Laserteil Edelstahl" hat mehr als 9 Zeichen, Du musst ebenfalls den LEFT Befehl anpassen.

Peter
AW: Zeile kopieren, wenn in Spalte bestimmter Wert steht
18.09.2023 11:17:27
Daniel
HI

wenn du in If Left(Cells(i, 10), 9) = "Laserteil" Then das "Laserteil" durch ein anderes Wort ersetzt, musst du natürlich auch im LEFT die Länge anpassen, also die 9:

If Left(Cells(i, 10), 19) = "Laserteil Edelstahl" Then

oder du machst die Prüfung mit LIKE und Joker, dann brauchst du die Länge nicht:
If Cells(i, 10) Like "Laserteil*" Then
If Cells(i, 10) Like "Laserteil Edelstahl*" Then

Gruß Daniel
Anzeige
AW: Zeile kopieren, wenn in Spalte bestimmter Wert steht
18.09.2023 11:44:51
Daniel
Hallo Peter und Daniel,

wunderbar vielen Dank für die Hilfe. Ich hab die Länge von 9 auf 19 geändert.
Das mit dem Prüfung LIKE und JOKER werde ich mir merken.

Nochmals vielen Dank ihr habt mir sehr weitergeholfen.

Schönen Tag euch.

Gruß
Daniel
AW: Zeile kopieren, wenn in Spalte bestimmter Wert steht
18.09.2023 11:23:16
Ulf


If Cells(i, 10) Like "Laserteil*" then

hth
Ulf
AW: Zeile kopieren, wenn in Spalte bestimmter Wert steht
18.09.2023 11:46:02
Daniel
Hi Ulf,

dir auch vielen Dank für deine Hilfe.

Gruß
Daniel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige