Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Formel optimieren

VBA Formel optimieren
04.10.2014 19:24:05
EmanuelG

Hallo Zusammen,
da ich mit meinen Excel Kenntnissen nicht weiter komme, versuche ich mich jetzt mit VBA.
Habe mir da mal eine Formel erstellt, und Sie funktioniert.
Nun meine bitte: Kann ich diese Formel einfacher gestalten?

Sub Alle9()
'wenn in Zelle A1 ein O eingegeben wird dann mach in die Zellen B1,C1,D1 ein I
If Range("A1") = "O" Then
Range("B1, C1, D1") = "I"
End If
'wenn in Zelle B1 ein O eingegeben wird dann mach in die Zellen A1,C1,D1 ein I
If Range("B1") = "O" Then
Range("A1, C1, D1") = "I"
End If
'wenn in Zelle C1 ein O eingegeben wird dann mach in die Zellen A1,B1,D1 ein I
If Range("C1") = "O" Then
Range("A1, B1, D1") = "I"
End If
'wenn in Zelle D1 ein O eingegeben wird dann mach in die Zellen A1,B1,C1 ein I
If Range("D1") = "O" Then
Range("A1, B1, C1") = "I"
End If
End Sub
Mein Ziel ist es in einer Zelle A1, B1, C1 oder D1 ein O einzufügen und dann soll in den anderen Zellen ein I stehen.
Ich bedanke mich schon mal für eure Hilfe

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Formel optimieren
04.10.2014 22:34:22
Adis
Hallo
vom fachlichen: es handelt sich nicht um eine Formel sondern einen Makro Code.
Mit dem kann man spielen. Hier der bereinigte Original Code und 2 Beispiele.
'bereinigter Makro Code (bei kurzen Befehlen kann man End If weglasssen)
Sub Alle9_bereinigt()
'wenn in Zelle A1 ein O eingegeben wird dann mach in die Zellen B1,C1,D1 ein I
If Range("A1") = "O" Then Range("B1, C1, D1") = "I"
'wenn in Zelle B1 ein O eingegeben wird dann mach in die Zellen A1,C1,D1 ein I
If Range("B1") = "O" Then Range("A1, C1, D1") = "I"
'wenn in Zelle C1 ein O eingegeben wird dann mach in die Zellen A1,B1,D1 ein I
If Range("C1") = "O" Then Range("A1, B1, D1") = "I"
'wenn in Zelle D1 ein O eingegeben wird dann mach in die Zellen A1,B1,C1 ein I
If Range("D1") = "O" Then Range("A1, B1, C1") = "I"
End Sub

'Überall ein "I" eingeben (alle Zellen vorladen) und in die gewünschte Zelle "O" schreiben
Sub Alle9_KuzVersion()
Range("A1:D1") = "I"
End Sub

'Hier wird der Range Bereich auf "O" geprüft und <> Zellen mit "I" ausgefüllt
Sub Alle9_ForNext_Version()
For Each i In Range("A1:D1")
If i.Value = "O" Then Else i.Value = "I"
Next i
End Sub
Gruss Adis

Anzeige
AW: VBA Formel optimieren
04.10.2014 23:40:37
EmanuelG
Hallo Adis,
erstmal vielen dank für dein Makro, nur wenn ich diesen in mein Excelblatt einfüge bekomme ich folgende fehler Meldung

AW: Variablen sind zu deklarieren
04.10.2014 23:57:09
Gerd L
Hallo E.,
klar.
Dim i As Range fehlte.
Es geht ohne Schleife.
Sub d()
Dim X As Variant, stext As String
X = Application.Match(0, Range("A1:D1"), 0)
If IsNumeric(X) Then
stext = ("I,I,I,I")
Mid(stext, X * 2 - 1, 1) = "0"
Range("A1:D1") = Split(stext, ",")
End If
End Sub
Gruß Gerd

AW: Variablen sind zu deklarieren
05.10.2014 00:28:50
EmanuelG
N´abend Gerd,
danke für deine promte antwort, leider tut sich da nix! Habe dein Makro als Modul4 in mein Excelblatt eingefügt. Habe in Zelle B1 ein O eingetragen und es mit der F8 Taste durchlaufen lassen, leider tat sich dann nix, das Makro läuft durch doch die Zellen A1, C1 und D1 bleiben anschließend leer.
Ich bedanke mich für eure mühe einem Anfänger zu Helfen
Emanuel

Anzeige
AW: Der Code ist für Nullen nicht für O(h)
05.10.2014 09:28:06
Gerd L
Hallo E.,
zur Not kannst du deine Datei hochladen. Bei mit funktioniert es, mit Null.
Gruß Gerd

AW: Der Code ist für Nullen nicht für O(h)
05.10.2014 10:25:55
Hajo_Zi
Hallo Gerd,
In der heutigen Zeit ist es nicht mehr üblich eine Rückmeldung zu geben. Also lasse doch den Fragesteller entscheiden ob noch offen.
In Deiner Variante ist der Beitrag 6 Tage offen.

AW: Das war gewollt o.T.
05.10.2014 10:42:50
Gerd L
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige