Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA, Wenn dann

Forumthread: VBA, Wenn dann

VBA, Wenn dann
19.03.2020 14:00:57
Gehard
Hallo,
ich habe ein Problem mit einem Makro.
Mein Makro sucht in einer Tabelle die Spalteköpfe nach bestimmten Werten ab und kopiert wenn der Spaltenkopf gefunden wurde alle Werte der jeweiligen Spalte in einer vorher durch das Makro neu erstellten Datei.
Ich möchte jetzt in einer Spalte der neuen Datei folgendes machen (in der Spalte kommen nur Nullen oder Einsen vor).
Wenn dort eine 1 einkopiert wurde, soll daraus ein ja gemacht werde und wenn eine 0 einkopiert wurde soll ein nein daraus gemacht werden.
Anbei dazu der Auszug des Makros für den ich das brauche. Hier wird der Wert GEFAHR gesucht und wenn gefunden wird, wird die Spalte ab Zeile 2 bis 99 in die neue Datei in die Spalte 9 (I) ab Zeile 10 eingefügt.

strSuche = "GEFAHR"
If Not strSuche = vbNullString Then
Application.ScreenUpdating = False
With wbAktiv.Worksheets("Tabelle1")
Set raFund = .Rows(1).Find(What:=strSuche, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
raFund.Offset(1).Resize(99).Copy
With wsNeu
loSpalte = .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1).Column
If .Cells(1, 1) = "" Then loSpalte = 9
.Cells(10, loSpalte).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
Else
MsgBox "Fehler: Der Suchbegriff " & strSuche & " wurde nicht gefunden."
End If
End With
End If

Vielen Dank schon einmal im Voraus.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA, Wenn dann
19.03.2020 14:09:35
Torsten
Hallo Gerhard,
so z.B.:

strSuche = "GEFAHR"
If Not strSuche = vbNullString Then
Application.ScreenUpdating = False
With wbAktiv.Worksheets("Tabelle1")
Set raFund = .Rows(1).Find(What:=strSuche, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
raFund.Offset(1).Resize(99).Copy
With wsNeu
lospalte = .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1).Column
If .Cells(1, 1) = "" Then lospalte = 9
.Cells(10, lospalte).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
loZeile = .Cells(Rows.Count).End(xlUp).Row
Set Bereich = .Range(.Cells(10, lospalte), .Cells(loZeile, lospalte))
For Each Zelle In Bereich
If Zelle = "1" Then Zelle = "Ja"    'die Zahl in "", wenn es Text ist
If Zelle = "0" Then Zelle = "Nein"  'sonst nur die Zahl
Next
End With
Else
MsgBox "Fehler: Der Suchbegriff " & strSuche & " wurde nicht gefunden."
End If
End With
End If

Gruss Torsten
Anzeige
AW: VBA, Wenn dann
19.03.2020 14:20:32
Torsten
Ach sorry hab noch vergessen, dass die Variablen, die ich benutze, am Anfang der Sub noch zu deklarieren sind:

Dim Zelle As Range, Bereich As Range, loZeile As Long

AW: VBA, Wenn dann
19.03.2020 14:55:14
UweD
Hallo
ergänze die beiden Zeilen im Code
                    .Cells(10, loSpalte).PasteSpecial Paste:=xlPasteValues
                    Application.CutCopyMode = False
                    
                    'ergänzen*** 
                    .Columns(loSpalte).Replace What:="1", Replacement:="ja", LookAt:=xlWhole, SearchOrder:=xlByRows
                    .Columns(loSpalte).Replace What:="0", Replacement:="nein", LookAt:=xlWhole, SearchOrder:=xlByRows
                    '*** 
                    
                End With

LG UweD
Anzeige
AW: VBA, Wenn dann
19.03.2020 15:15:50
Gehard
Ich habe beide Varianten ausprobiert und habe mich für Uwes etnschieden.
Vielen Dank für die schnellen Antworten.
Danke für die Rückmeldung. (owT)
19.03.2020 16:00:53
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige