Clever-Excel-Forum

Normale Version: Abfrage, wenn Wert dann neue Zeilen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi LuckyJoe

Ich habe noch eine weitere Idee die ich gerne einbauen würde.
Nach kurzem Arbeiten mit dem Code habe ich bemerkt das es etwas unübersichtlich ist, daher würde ich gerne die "Original" Spalte die Kopiert wird einfärben und die Kopierten in der Ursprünglichen Var. Kopieren.
Ist das möglich?

Ich habe sehr viele Beiträge gefunden zur Formatierung, jedoch weis ich leider nicht wie ich die Originalen Zeilen nach dem Kopieren wiedererkennen kann.. 
Hast du mir da auch einen Lösungsansatz?  Angel
Hi,

was meinst du mit "Original" Spalte? Die wird doch nicht verändert. Wenn du die "Original"-Zellen meinst, dann ersetze die For...Next-Schleife durch

Code:
   For i = letzteZeile To 1 Step -1
       If Cells(i, 3).Value = Bauteil Then
           With Rows(i)
               .Copy
               .Resize(NeueZeilen).Insert Shift:=xlDown
               Cells(i, 3).Interior.ColorIndex = 35
               Cells(i, 3).Font.ColorIndex = 3
               Cells(i, 3).Font.Bold = True
           End With
       End If
   Next i

Suche dir von den drei Codezeilen die aus, die du haben willst. Schau in der Hilfe nach, welche Farbwerte sonst verwendet werden können.
Hi schon wieder :)

Mir ist gerade eben ein Geistesblitz gekommen und ich habe es geschafft:

Vielen Dank trotzdem dass du dir noch einmal die mühe gemacht hast.

Code:
Sub Leerezeile()
   
   Dim i As Long
   Dim Anfrage As Variant
   Dim Anfrage2 As Variant
   Dim Bauteil As String
   Dim Anzahl As Integer
   Dim ErsteZeile As String
   Dim LetzteZeile As String
   Dim AktiveZeile As Range
   
   'Application.ScreenUpdating = False 'Bearbeitungsschritte unsichtbar
   
   Anfrage = InputBox("Bitte Bauteil aus Spalte C und Anzahl neuer Zeilen eingeben, getrennt durch /:")
   Anfrage2 = InputBox("Bitte Von-Bis Zeile angeben, getrennt durch /:")
   
   
   Anfrage = Split(Anfrage, "/")
   Bauteil = Anfrage(0)        ' 1. Teil vor dem '#'
   Anzahl = Anfrage(1)     ' 2. Teil nach dem '#'
   
   Anfrage2 = Split(Anfrage2, "/")
   ErsteZeile = Anfrage2(0)        ' 1. Teil vor dem '#'
   LetzteZeile = Anfrage2(1)     ' 2. Teil nach dem '#'
   


   For i = LetzteZeile To ErsteZeile Step -1
       If Cells(i, 3).Value = Bauteil Then
       Set AktiveZeile = ActiveCell
           With Rows(i)
              .Copy
              .Resize(Anzahl).Insert Shift:=xlDown
           End With
       AktiveZeile.Select
       
       If AktiveZeile = selectet Then
           Rows(i).Font.ColorIndex = 23
       End If
       
      End If
   Next i
   
   'Application.ScreenUpdating = True 'Bearbeitungsschritte wieder sichtbar

End Sub
Kleiner Tipp: verzichte wenn möglich auf die (in der Regel vom Makrorekorder vorgeschlagenen) (unnötigen) Konstruktionen mit "Select". Dein Programmcode wird dadurch nur unnötig aufgebläht und die Abarbeitung enorm verlangsamt.
Danke für den Tipp, wie kann denn der Code aussehen wenn ich Select weg lasse?

Mir ist gerade noch einen Fehler aufgefallen:

[attachment=23917]

Wenn die Ausrichtung des Textes vorher bearbeitet wurde funktioniert das einfärben nicht  Huh 
Kennst du ein gutes Tutorial o.ä. das ich mir zu diesem Thema anschauen kann? Oder kannst du mir sagen an was das liegt und wie man das beheben kann?

Vielen Dank für die Geduld :)
Schau dir mein Beispiel unter #12 an, da funktioniert das ohne "Select", auch unabhängig von der Textformatierung oder Ausrichtung.

Google mal nach Tutorials und Excel-VBA, da findest du eine ganze Menge.
Habe es angepasst

Dankeschön :)
Seiten: 1 2