Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA

VBA
17.03.2008 17:28:00
Juan
Hallo zusammen,
Ich wollte Euch 2 Fragen stellen.
1) Gibt es eine geschicktere Form um das selbe Ergebnis zu kriegen?
(BG..:BK.. entspricht verbundene Zelle)

Private Sub cmdDo_Click()
Worksheets("Pflege").Range("BG11:BK11").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,2)"""",HLOOKUP(RangeDatum,RangeMTA,2  _
_
b>),"""")"
Worksheets("Pflege").Range("BG12:BK12").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,3)"""",HLOOKUP(RangeDatum,RangeMTA,3),"""")"
Worksheets("Pflege").Range("BG13:BK13").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,4)"""",HLOOKUP(RangeDatum,RangeMTA,4),"""")"
Worksheets("Pflege").Range("BG14:BK14").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,5)"""",HLOOKUP(RangeDatum,RangeMTA,5),"""")"
Worksheets("Pflege").Range("BG15:BK15").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,6)"""",HLOOKUP(RangeDatum,RangeMTA,6),"""")"
Worksheets("Pflege").Range("BG16:BK16").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,7)"""",HLOOKUP(RangeDatum,RangeMTA,7),"""")"
Worksheets("Pflege").Range("BG17:BK17").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,8)"""",HLOOKUP(RangeDatum,RangeMTA,8),"""")"
Worksheets("Pflege").Range("BG18:BK18").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,9)"""",HLOOKUP(RangeDatum,RangeMTA,9),"""")"
Worksheets("Pflege").Range("BG19:BK19").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,10)"""",HLOOKUP(RangeDatum,RangeMTA,10),"""")"
Worksheets("Pflege").Range("BG20:BK20").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,11)"""",HLOOKUP(RangeDatum,RangeMTA,11),"""")"
Worksheets("Pflege").Range("BG21:BK21").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,12)"""",HLOOKUP(RangeDatum,RangeMTA,12),"""")"
Worksheets("Pflege").Range("BG22:BK22").FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA,13)"""",HLOOKUP(RangeDatum,RangeMTA,13),"""")"
End Sub


Und nun die 2. Frage:
Im "RangeDatum" gibt es eine Liste (Daten--->Gültigkeit--->Liste).
Ist es möglich, dass die o.g. Funktionen wieder geschrieben werden jedes Mal ein neuer Wert aus der Dropdown Liste im "RangeDatum" ausgewählt wird?
Bedanke mich im Voraus!
Beste Grüße,
Juan.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA
17.03.2008 18:20:55
Tino
Hallo,
zur Frage eins

Sub test()
Dim A As Byte
Application.ScreenUpdating = False
With Worksheets("Pflege")
For A = 11 To 22
.Range("BG" & A & ":BK" & A).FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA," & A - 9 & ")"""",HLOOKUP(RangeDatum,RangeMTA," & A -  _
9 & "),"""")"
Next A
End With
Application.ScreenUpdating = True
End Sub


Gruß
Tino

AW: VBA
17.03.2008 18:49:04
Juan
Hallo Tino,
vielen Dank für die schnelle Antwort!
Schönen Tag noch.
Beste Grüsse,
Juan

AW: VBA
17.03.2008 18:30:00
fcs
Hallo Juan,
Frage 1: du kannst die Formeln in einer Schleife abarbeiten.
Frage 2: Warum sollen die Formeln neu geschrieben werden, wenn der Wert in der Auswahlliste geändert wird? Die Formelwerte werden doch automatisch neu berechnet, es sei den du hast unter Optionen das Berechnen auf manuell eingestellt.
Gruß
Franz

Private Sub cmdDo_Click()
Dim Reihe As Long
With Worksheets("Pflege")
Reihe = 2
For Zeile = 11 To 22
.Range("BG" & Zeile).FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA," & Reihe & ")"""",HLOOKUP(RangeDatum,RangeMTA," _
& Reihe & "),"""")"
Reihe = Reihe + 1
Next
End With
End Sub


Anzeige
AW: VBA
17.03.2008 18:46:00
Juan
Hallo Franz,
Zunächst einmal Danke für den Hinweis!
Im Bezug auf deiner Frage:
Gedacht ist es um das Blatt zu schützen.
Ich kann mir vorstellen, dass man Werte in den Zellen schreibt und dann einen anderen Wert der Auswahlsliste nimmt, ohne den Button DO zu drücken (wobei DO 2 Rollen hat: erstens eine Tabelle mit neu eingetragenen Werte auszufüllen, und zweitens die Formeln wieder zu schreiben; der erste Teil war in meiner Frage nicht vorhanden).
In diesem Fall sollten die Formeln erneut geschrieben werden, sodass die entsprechenden Werte gezeigt werden können.
Beste Grüsse,
Juan.

Anzeige
AW: VBA
18.03.2008 07:47:45
fcs
Hallo Juan,
wenn du versehentliche Änderungen/Löschen von Zellinhalten verhindern willst, dann solltest du als einfachste Lösung mit dem Blattschutz arbeiten.
Markiere alle Zellen, in die Werte eingegeben werden sollen, und ändere unter Format-Zellen-Schutz die Option für "gesperrt". Anschliessend Zellschutz aktivieren.
Etwas aufwendiger: Du erstellst ein Ereignismakro, das Zellwert-Änderungen durch Eingaben überwacht.
Das entsprechende Makro muss du im VBA-Editor unter dem Tabellenblatt einfügen.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Reihe As Long, Zeile As Long
'zellwert überwachen
If Target.Address = "$A$2" Then
'Formeln im Bereich BG11:BK22 wiederhestellen
With Worksheets("Pflege")
Reihe = 2
Application.EnableEvents = False 'Ereignismakros abschalten
For Zeile = 11 To 22
.Range("BG" & Zeile).FormulaR1C1 = _
"=IF(HLOOKUP(RangeDatum,RangeMTA," & Reihe & ")"""",HLOOKUP(RangeDatum,RangeMTA," _
& Reihe & "),"""")"
Reihe = Reihe + 1
Next
Application.EnableEvents = True 'Ereignismakros einschalten
End With
End If
End Sub


Anzeige
Vielen Dank, Franz! Es hat geklappt! BG
19.03.2008 09:18:28
Juan
-

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige