Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
584to588
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
584to588
584to588
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro ausführen, wenn....

Makro ausführen, wenn....
18.03.2005 07:38:24
Josef
Guten Morgen!
Gäbe es bitte mittels VBA folgende Lösung: ?
Wenn in Spalte A (Markierung A2-A10) die ersten zwei Zeichen die Zahl 18 sind, dann führe Makro1 aus, sind die ersten 2 Zeichenin Spalte A (Markierung A11-A20) eine 19 dann führe Makro2 aus usw.
Danke
Josef

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen, wenn....
18.03.2005 07:52:36
Hajo_Zi
Hallo Josef,
handelt es sich um Eingaben?
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


AW: Makro ausführen, wenn....
18.03.2005 08:10:05
Josef
Hallo Hajo!
Danke für Deine Antwort.
Eingaben direkt nicht. Das Makro würde eine Formel in der entsprechenden Zelle einfügen und der richtige Wert würde eingetragen werden.
Josef
AW: Makro ausführen, wenn....
18.03.2005 08:06:11
Volker
Hallo Josef,
das hier sollte es tun:

Sub Makro1()
Dim bereich As Range
Dim test18, test19 As Boolean
test18 = True
test19 = True
Set bereich = Range("a2:a10")
For Each zelle In bereich
test18 = test18 And (Left(zelle, 2) = 18)
Next
If test18 Then
dein_makro1
Exit Sub
End If
Set bereich = Range("a11:a20")
For Each zelle In bereich
test19 = test19 And (Left(zelle, 2) = 19)
Next
If test19 Then
dein_makro2
End If
End Sub

Gruß
Volker
Anzeige
AW: Makro ausführen, wenn....
18.03.2005 08:19:53
Josef
Hallo Volker!
Danke für Deine Antwort.
Die Markierung müßte ich immer händisch durchführen.
Etwa so:
Ich markiere den entsprechenden Bereich und das Makro wird durchgeführt.
Josef
AW: Makro ausführen, wenn....
18.03.2005 08:26:34
Volker
Hallo Josef,
Du mußt Dich schon etwas klarer ausdrücken
Ist der Bereich nun variabel, oder fix?
Was tust Du und was soll passieren?
Gruß
Volker
AW: Makro ausführen, wenn....
18.03.2005 08:48:45
Josef
Hallo Volker!
Ich habe es befürchtet, dass ich mich nicht klar ausgedrückt habe.
Ich habe bei mir folgendes Makro gefunden:

Sub Markier_E()
Dim C As Range, ErgBereich As Range
Dim laR As Long
laR = Cells(Rows.Count, 1).End(xlUp).Row
For Each C In Range("E1:E" & laR)
If C.Offset(0, -1).Value <> "" Then
Set ErgBereich = C
Exit For
End If
Next C
If ErgBereich Is Nothing Then
Exit Sub
Else
For Each C In Range("E1:E" & laR)
If C.Offset(0, -1).Value <> "" Then
Set ErgBereich = Application.Union(ErgBereich, C)
End If
Next C
ErgBereich.Select
Set ErgBereich = Nothing
End If
End Sub

Mit diesem Makro erfolgt in Spalte E eine Markierung an jenen Stellen wie auch Werte in spalte A vorhanden sind. Danach möchte ich z.B. folgendes Makro durchführen lassen:

Sub past()
Dim rngCell As Range
For Each rngCell In Selection
rngCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(R[-22]C[5],'H:\SVA_Import\[SUBKAPITEL.xls]SUBKAPITEL'!R3C1:R2501C9,9,)),"""",VLOOKUP(R[-22]C[5],'H:\SVA_Import\[SUBKAPITEL.xls]SUBKAPITEL'!R3C8:R2501C9,2,))"Next
End Sub

Man müßte, glaube ich, das Makro Markier_E insoweit ändern, dass eine Markierung in Spalte e an jenen Stellen erfolgt, wo z.B. in Spalte A die ersten 2 Zeichen einer 7 stelligen Zahl eine 19 ergeben. Oder 18.
Josef
Anzeige
AW: Makro ausführen, wenn....
18.03.2005 08:54:24
Volker
Hallo Josef,
wie soll ich einen Code, den Du irgendwo ausgegraben hast, auf Deine Bedürfnisse anpassen, wenn Du mir nicht sagst, was Du machen willst.
Also jetzt mal ohne Code in dem Sinne:
Ich markiere diesen oder jenen Bereich
Dann soll Bedingung xyz auf Knopfdruck/automatisch geprüft werden und
dann dieses und jenes gemacht werden.
Gruß
Volker
AW: Makro ausführen, wenn....
18.03.2005 11:17:26
Josef
Hallo Volker!
Wieder alles falsch gemacht. Tut mir leid.
In Spalte A gibt es z.B. folgende Werte:
1819411
1819422
1819433
1819444
1819455
1819466
1919411
1919422
1919433
1919444
1919455
1919466
Wenn jetzt z.B. in der Spalte A die ersten zwei Stellen eine 18 sind dann soll z. B. die Spalte AE (in diesem Beispiel A1-A6 wäre AE1-AE6) markiert werden und folgendes Makro ausgeführt werden:

Sub past()
Dim rngCell As Range
For Each rngCell In Selection
rngCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(R[-22]C[5],'H:\SVA_Import\[SUBKAPITEL.xls]SUBKAPITEL'!R3C1:R2501C9,9,)),"""",VLOOKUP(R[-22]C[5],'H:\SVA_Import\[SUBKAPITEL.xls]SUBKAPITEL'!R3C8:R2501C9,2,))"Next
End Sub

Es könne jedoch auch mehr 18er Nr. oder weniger 18er Nr. vorkommen.
Anzeige
AW: Makro ausführen, wenn....
21.03.2005 12:23:11
Volker
Hallo Josef,
sorry, war am Wochenende nicht online. Und keine Sorge, wir kommen uns schon näher;-) Wenn's nochnicht zu spät ist versuch mal folgendes:
Ich fange ab A1 abwärts nach der "18" zu suchen.
sub such_die_zahl()
dim i as integer
i=1
while left(cells(i,1),2)="18"
i=i+1
wend
Range("AE1:AE" & i).select
past 'Aufruf Deiner Sub
endsub
Oder, wenn in A1 ev. noch keine 18 steht:
sub such_die_zahl()
dim i,j as integer
i=1
while left(cells(i,1),2)"18"
i=i+1
wend
j=i+1
while left(cells(j,1),2)="18"
j=j+1
wend
Range("AE" & i & ":AE" & j).select
past 'Aufruf Deiner Sub
endsub
Aber wenn Du nur in Abhängigkeit von den Werten in Spalte A in Spalte AE eine Formel stehen haben willst, kannst Du das auch mit einer TabellenFunktion machen
In der Art:
=WENN(links("A1";2)=18;;"")
Gruß
Volker
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige