Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Zeile nach Wert durchsuchen und ....

Betrifft: VBA Zeile nach Wert durchsuchen und .... von: DuFF
Geschrieben am: 23.09.2020 14:58:36

Hallo,

folgender Monatsplan soll mittels VBA nach folgenden Werten ("D", "N1", "N2", "I", "E3I","RST") durchsucht werden und dann in der folgenden Spalte "nD" ausgegeben werden. Also Formel kann ich es leider nicht einrichten da auch andere Werte in die Zeilen eingetragen werden.

Bsp:

F7 "D" dann F8 "nD"

Hat jemand eine Idee.

vielen Dank schon einmal.

https://www.herber.de/bbs/user/140380.xlsx

Betrifft: AW: VBA Zeile nach Wert durchsuchen und ....
von: Rudi Maintaire
Geschrieben am: 23.09.2020 15:07:32

und dann in der folgenden Spalte "nD" ausgegeben werden
und wenn da schon was steht? z.B. H7:K7

Betrifft: AW: VBA Zeile nach Wert durchsuchen und ....
von: DuFF
Geschrieben am: 23.09.2020 16:29:27

dann wird dies überschrieben..

Betrifft: In die nächste ZEILE oder SPALTE ?
von: NoNet
Geschrieben am: 23.09.2020 15:14:36

Hi DuFF,

ich habe da ein Verständnisproblem :
1.) Du schreibst :
...und dann in der folgenden Spalte "nD" ausgegeben werden...

Als Beispiel fügst Du hinzu :
F7 "D" dann F8 "nD"

Das wäre dann jedoch die nächste ZEILE !! - Ich vermute Du meinst aber die nächst Spalte (also G7), oder ?

2.) Lautet der einzusetzende Text immer "nD" - also egal, welcher der Werte ("D", "N1", "N2", "I", "E3I","RST") gefunden wurde ?

Salut, NoNet

Betrifft: AW: In die nächste ZEILE oder SPALTE ?
von: DuFF
Geschrieben am: 23.09.2020 16:32:41

Hi,
meinte Zeile also in F7 "D" dann F8 "nD". Auch bei denn anderen Beispielen (I, N1, N2, e3I, RST) soll dann nD stehen, alles andere was in F7 eingetragen wird soll keine Auswirkung auf F8 haben. Nur obige Beispiele.

lg

Betrifft: ich schließe mich den Vorrednern an....
von: ralf_b
Geschrieben am: 23.09.2020 15:34:54

Lieber Dirk, was bezweckst du?
Ein paar Details mehr wären nett. Immerhin veröffentlichst du hier Realnamen von med. Personal. Und ich schätze die Nummern in den Kommentaren sind Personalnummern. Da kann es mit der Geheimhaltung nicht so weit her sein. Anonymisierte Dateien sind kein Hexenwerk.

Betrifft: AW: ich schließe mich den Vorrednern an....
von: DuFF
Geschrieben am: 23.09.2020 16:35:18

hi, keine Sorge, sind keine echten Namen, die hatte ich mir nur ausgedacht.... Die Quali hatte ich nur vergessen .(

Betrifft: AW: VBA Zeile nach Wert durchsuchen und ....
von: GerdL
Geschrieben am: 23.09.2020 17:12:04

Moin
Sub Unit()

    Dim C As Range
    
    
    For Each C In Range("D2:V13").SpecialCells(xlCellTypeBlanks)
    
        Select Case C.Offset(0, -1).Value
            Case "D", "N1", "N2", "I", "E3I", "RST"
                C.Value = "nD"
        End Select
    
    Next


End Sub

Gruß Gerd

Betrifft: AW: VBA Zeile nach Wert durchsuchen und ....
von: DuFF
Geschrieben am: 23.09.2020 20:30:13

Vielen Dank.

Klappt bestens

Betrifft: AW: VBA Zeile nach Wert durchsuchen und ....
von: DuFF
Geschrieben am: 23.09.2020 20:48:57

Hi,

klappt fasst leider ist die Datei wohl zu groß.
Es wäre besser das nur die aktive Zelle überprüft wird, also direkt nach der Eingabe und dann das Feld dahinter...

Geht das auch?

Betrifft: AW: VBA Zeile nach Wert durchsuchen und ....
von: Rudi Maintaire
Geschrieben am: 24.09.2020 08:54:37

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count = 1 Then
    Select Case Target.Value
      Case "D", "N1", "N2", "I", "E3I", "RST"
        Application.EnableEvents = False
           Target.Offset(1).Value = "nD"
        Application.EnableEvents = True
    End Select
  End If
End Sub


Betrifft: AW: VBA Zeile nach Wert durchsuchen und ....
von: DuFF
Geschrieben am: 25.09.2020 09:33:51

Vielen vielen Dank...

Betrifft: na dann ....
von: Rudi Maintaire
Geschrieben am: 23.09.2020 20:31:56

Hallo,
in ein Modul:
Sub nD()
  Dim arrMatch, rngC As Range
  arrMatch = Array("D", "N1", "N2", "I", "E3I", "RST")
  Application.ScreenUpdating = False
  For Each rngC In Range("C2:V13")
    If Not IsError(Application.Match(rngC.Value, arrMatch, 0)) Then
      rngC.Offset(1) = "nD"
    End If
  Next rngC
End Sub

Gruß
Rudi

Beiträge aus dem Excel-Forum zum Thema "VBA Zeile nach Wert durchsuchen und ...."