Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

ActiveCell.End(xlUp).Copy ActiveCell - wenn... | Herbers Excel-Forum


Betrifft: ActiveCell.End(xlUp).Copy ActiveCell - wenn... von: Karsten
Geschrieben am: 29.11.2009 19:51:57

Hallo,

ich möchte, dass in der selben Spalte aufwärts die Zelle erkannt und kopiert wird, welche nicht "fehlt" beinhaltet.
Den folgenden Code hatte ich bisher angewandt, nützt mir aber diesbezüglich nichts, weil er auch "fehlt" - Inhalte kopiert:
ActiveCell.End(xlUp).Copy ActiveCell

Danke für eure Hilfe.

Gruß
Karsten

  

Betrifft: AW: ActiveCell.End(xlUp).Copy ActiveCell - wenn... von: ChrisL
Geschrieben am: 30.11.2009 08:19:38

Hi Karsten

Sub t()
Dim iZeile As Long

For iZeile = ActiveCell.End(xlUp).Row To 1 Step -1
    If Cells(iZeile, ActiveCell.Column) <> "fehlt" Then
        Cells(iZeile, ActiveCell.Column).Copy ActiveCell
        Exit For
    End If
Next iZeile
End Sub
cu
Chris


  

Betrifft: AW: ActiveCell.End(xlUp).Copy ActiveCell - wenn... von: Karsten
Geschrieben am: 30.11.2009 08:37:40

Hallo ChrisL,

danke, es geht ... fast.

Zwischen der Zelle mit Inhalt "fehlt" (wenn vorhanden) und der oben drüberstehenden Zelle befinden sich noch Leerzellen. In diesem Falle wird noch nichts gefunden. Könntest du das bitte noch ändern?

Gruß
Karsten


  

Betrifft: AW: ActiveCell.End(xlUp).Copy ActiveCell - wenn... von: ChrisL
Geschrieben am: 30.11.2009 09:13:59

Hi

Sub t()
 Dim iZeile As Long
 
 For iZeile = ActiveCell.End(xlUp).Row To 1 Step -1
     If Cells(iZeile, ActiveCell.Column) <> "fehlt" And <> "" Then
         Cells(iZeile, ActiveCell.Column).Copy ActiveCell
         Exit For
     End If
 Next iZeile
 End Sub



  

Betrifft: AW: ActiveCell.End(xlUp).Copy ActiveCell - wenn... von: Karsten
Geschrieben am: 30.11.2009 10:04:44

Hallo ChrisL,

danke. Du hattest zwar etwas vergessen. Aber jetzt gehts.

If Cells(iZeile, ActiveCell.Column) <> "fehlt" And Cells(iZeile, ActiveCell.Column) <> "" Then

Gruß
Karsten


  

Betrifft: AW: ActiveCell.End(xlUp).Copy ActiveCell - wenn... von: fcs
Geschrieben am: 30.11.2009 08:32:50

Hallo Karsten,

etwa so geht es.

Gruß
Franz

Sub CopyNichtFehlt()
  Dim Zelle As Range, AktiveZelle As Range
  Const strtext = "fehlt"
  Set AktiveZelle = ActiveCell
  Set Zelle = AktiveZelle.End(xlUp)
  Do Until Zelle.Value <> strtext Or Zelle.Row = 1
    Set Zelle = Zelle.Offset(-1, 0)
  Loop
  If Zelle.Row = 1 And Zelle.Value = strtext Then
    MsgBox "Nur """ & strtext & """ in dieser Spalte!"
  Else
    Zelle.Copy AktiveZelle
  End If
End Sub



  

Betrifft: AW: ActiveCell.End(xlUp).Copy ActiveCell - wenn... von: Karsten
Geschrieben am: 30.11.2009 08:41:47

Hallo fcs,

danke. Zwischen der Zelle mit Inhalt "fehlt" (wenn vorhanden) und der oben drüberstehenden Zelle befinden sich noch Leerzellen. In diesem Falle wird noch nichts gefunden. Ich hatte es in meiner Fragestellung nicht mit berücksichtigt.

Gruß
Karsten


  

Betrifft: AW: der Vollständigkeit halber dann von: fcs
Geschrieben am: 30.11.2009 13:48:23

Hallo Karsten,

dann

Sub CopyNichtFehlt()
  Dim Zelle As Range, AktiveZelle As Range
  Const strtext = "fehlt"
  Set AktiveZelle = ActiveCell
  Set Zelle = AktiveZelle.End(xlUp)
  Do Until Not (Zelle.Value = strtext Or Zelle.Value = "") Or Zelle.Row = 1
    Set Zelle = Zelle.Offset(-1, 0)
  Loop
  If Zelle.Row = 1 And (Zelle.Value = strtext Or Zelle.Value = "") Then
    MsgBox "Nur """ & strtext & """ oder Leerzellen in dieser Spalte!"
  Else
    Zelle.Copy AktiveZelle
  End If
End Sub

Gruß
Franz