Bestimmten Wert bei erstmaligen Auftreten innerhalb einer Spalte finden

Ikaner

Grünschnabel
Hallo Leute,

ich hab folgendes Problem mit dem ich nicht weiter komme:

ich habe ein Excel-Tabellenblatt, das in den Zellen A1:Cxxx mit Werten gefüllt ist

Spalte A: Zeitmessungen
Spalte B: Istwert
Spalte C: Sollwert

nun soll mit einem Makro, die ersten 5 Zeilen gelöscht werden (also nicht der Inhalt sondern wirklich die Zeilen - ist nur Text der nicht für die Auswertung wichtig ist).

Danach wird die Spalte C markiert und innerhalb dieser wird die erste Zeile, bei der der Wert 60 erreicht wird als Textbox angezeigt.

Soweit kein Problem.

Diese Zeile ist der Start für meine Auswertung. Ich möchte aber noch die 20 Zellen, bevor der Wert 60 erreicht wurde, mit auswerten. (Also z.B. Wert 60 in Zelle C90 erreicht springe in C71)

Der Rest oberhalb von beispielhaft Zeile 71 soll gelöscht werden und das bekomme ich irgendwie nicht hin. =/

Hier mal mein Makro:

Visual Basic:
Sub Zelle_Konvertierung_Click()
'
' Zellen_Konvertierung Makro
'

'
  Sheets("Rohdatei").Select
  ActiveSheet.Rows("1:5").Select
  Selection.Delete Shift:=xlUp
  
'Sollwert in Spalte C suchen

Sheets("Rohdatei").Select
ActiveSheet.Columns("C:C").Select

With ActiveSheet.Range("C1:C10000")
Set c = .Find(What:="60")
End With
MsgBox c.Row

ActiveSheet.Rows("1:c").Select
Selection.Delete Shift:=xlUp

End Sub


Ich hoffe ihr könnt mir helfen =)

Grüße
 
Zuletzt bearbeitet von einem Moderator:
Dir ist bekannt, dass die Rows-Auflistung auch eine Delete-Methode hat?

Visual Basic:
ActiveSheet.Rows("1:" & C).Delete
 
Zuletzt bearbeitet:
Hallo Zvoni,

hab in einem anderen Office Forum eine brauchbare Lösung erhalten =)

Hier mal der VBA-Code
Visual Basic:
Option Explicit

Sub QualitaetsregelkarteAktualisieren()
  Dim lngSoll As Long
  With ActiveSheet
  lngSoll = Application.WorksheetFunction.Match(60, .Columns(3), 0) - 20
  If lngSoll > 0 Then
  .Rows("1:" & lngSoll).Delete
  End If
  Worksheets("Diagramm").Range("C2:D2086").Value = .Range("B1:C2085").Value
  End With

Sheet("Diagramm").Select
End Sub


Leider geht das nur über die Makro-Anwahl; über einen Button in einem separaten Blatt wäre mir lieber, aber es funtkioniert =)

Wie sag ich dem Programm jetzt noch das er mir in dem Arbeitsblatt "Diagramm" in die Zelle J2 geht (da ist der Wert, der mich interessiert) und diesen kopiert (also so als wenn ich den über Rechtsklick kopiere) ?
 
Zuletzt bearbeitet von einem Moderator:
Das Range-Objekt hat eine Copy-Methode

Visual Basic:
Worksheets("Diagramm").Range("J2").Copy

P.S.: Du siehst, dass in deinem Code
Visual Basic:
If lngSoll > 0 Then
.Rows("1:" & lngSoll).Delete
End If
das eigentlich genau meine Antwort ist?
 
Der obere code-block ist die antwort auf deine kopierfrage.

Der zweite code-block ist der ausschnitt aus deinem code, den du im netz gefunden hast. Vergleiche mal deinen code mit meinem aus meiner ersten antwort
 

Neue Beiträge

Zurück