Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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

Schleifen

Schleifen
daniela.schmidt@atlantisfoundries.com
Hallo,
Ich moechte gerne monatliche Kosten vergleichen mit Planungskosten.
Die Planungskosten stehen in Spalte AO.
Das Delta zwischen Planung und monatlichen Kosten soll in Spalte AP stehen.
Die Kosten fuer
Januar Spalte E
Februar Spalte H
Maerz Spalte K
April Spalte N usw.
Die Formel in AP lautet zum Beispiel fuer den Januar:
'=IF(E11="","",E11-AO11)
Die Formel in AP lautet zum Beispiel fuer den Februar:
'=IF(H11="","",H11-AO11)
Jetzt haette ich gerne, dass wenn ich in einen Inputbox den Monat Juli zum Beispiel eingegeben wird, dass dann automatisch die entsprechende Formel erstellt wird und 100 Zeilen nach unten kopiert wird.
Ist das durch eine Schleife moeglich?
Ich moechte nicht fuer jeden Monat ein eigenes Makro schreiben.
Hat jemand eine Idee?
Daniela

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Ohne Schleife : Application.MATCH
12.07.2010 13:15:06
daniela.schmidt@atlantisfoundries.com
mal ne doofe Frage...
Wie kann ich in der Visual Basic ansicht eine Userform einfuegen?
Daniela
über Einfügen owT
12.07.2010 13:16:50
Rudi
VBE Basics : UserForm in VBE einfügen
12.07.2010 13:44:05
NoNet
Hallo Daniela,
auf die Antwort DIESER Frage kann man - mit Verlaub - auch als Anfänger wirklich selbst kommen (wenn es nicht gar zu heiß ist...).
Hier 2 Varianten zum Einfügen eines UserForms in die VBE :
Userbild
Gruß, NoNet
Anzeige
AW: Ohne Schleife : Application.MATCH
12.07.2010 13:52:04
daniela.schmidt@atlantisfoundries.com
Hey NoNet,
ich habe das jetzt mal auf meine Tabelle uebertragen.
Wenn ich das Makro jedoch abspielen moechte, dann kommt die Fehlermeldung.
Run Time error '13': Type mistach.
Kannst du anhand des Fehlers sagen, was ich falsch gemacht habe?
im Editor wird angezeigt, dass die Zeile 3 hier falsch ist:
Private Sub cmdOK_Click()
Dim lngS As Long
lngS = Application.Match(cmbMonat.Value, [1:1], 0)
If lngS > 0 Then
[AP2:AP100].Formula = _
"=IF(RC[-" & 42 - lngS & "]="""","""",RC[-" & 42 - lngS & "]-RC[-1])"
End If
End Sub
Daniela
Anzeige
In Zeile 1 mus Jan, Feb, Mrz etc. stehen !
12.07.2010 13:54:29
NoNet
Hallo Daniela,
das Makro prüft, ob der ausgewählte Monat (Jan, Feb, Mar, Apr, May etc.)EXAKT so in Zeile 1 des aktuellen Tabellenblattes steht. - Ist das der Fall ?
Gruß, NoNet
AW: In Zeile 1 mus Jan, Feb, Mrz etc. stehen !
12.07.2010 14:01:36
daniela.schmidt@atlantisfoundries.com
Ahja...
Dann weis ich weis ich aendern muss.
Danke.
Daniela
AW: In Zeile 1 mus Jan, Feb, Mrz etc. stehen !
12.07.2010 14:13:23
daniela.schmidt@atlantisfoundries.com
Wie bekomme ich jetzt noch hin, dass nachdem ich auf OK klicke, das Fenster wieder verschwinde?
Daniela
UnLoad Me '_oT
12.07.2010 14:15:40
NoNet
_oT = "ohne Text"
Formel erklaeren
12.07.2010 14:25:34
daniela.schmidt@atlantisfoundries.com
Koenntest du mir noch diese Formel erklaeren.
Ich wuerde gerne noch eine andere Formel auf diese Weise berechnen lassen und weis nicht wie du auf die 42 kommst und was -" bedeutet
=IF(RC[-" & 42 - lngS & "]="""","""",RC[-" & 42 - lngS & "]-RC[-1])"
Daniela
Anzeige
RC[-37] - Relativer Bezug in VBA
12.07.2010 14:41:05
NoNet
Hallo Daniela,
das ist exakt Deine Funktion (=IF(E11="","",E11-AO11) )- nur eben in der RC-Schreibweise (Rows,Columns) mit relativen Zell-Bezügen.
Wenn sich die Funktion in Spalte AP auf den Monat "Jan" (in Spalte E, also 5.Spalte) bezieht, bedeutet das : Ausgehend von der Ergebnisspalte AP (=42.Spalte) um 37 Spalten nach links (5 - 42 = -37).
Würde sich die Funktion auf den Monat Dezember (Spalte AL = 38.Spalte) beziehen, wären das 4 Spalten nach links (38 - 42 = -4).
Daher "sucht" das Makro zunächst in der Zeile 1 den Monatsnamen, damit es erkennt, in welcher Spalte der Monat steht (z.B. "Feb" = 8.Spalte) und berechnet dann, wieviele Spalten nach links der Bezug gesetzt werden muss (Bei "Feb" wäre das : 8 - 42 = -34).
Die Funktion in VBA lautet also : =IF(RC[-34]="","",RC[-34]-RC[-1])
bzw. mit codierten Anführungszeichen : =IF(RC[-34]="""","""",RC[-34]-RC[-1])
Das RC[-1] bedeutet : Bezug auf den Wert, der 1 Spalte links daneben steht (also Bezug auf Spalte AO).
Etwas ausführlicher habe ich den "relativen Zellbezug" (RC-Schreibweise) hier erklärt - lies Dir das mal durch :
http://spotlight-wissen.de/lisp/pages/messages/amse-1136883848-12627
Gruß, NoNet
Anzeige
Spalten ausblenden
12.07.2010 15:33:11
daniela.schmidt@atlantisfoundries.com
Ok. Danke fuer die Erklaerung. Jetzt konnte ich auch die anderen Formeln schreiben.
Ich haette noch eine Frage:
Wie bekomme ich das hin, dass bestimmte Spalten ausgeblendet werden, wenn man einen bestimmten Monat auswaehlt.
Beispiel aus der Datei von NoNet:
https://www.herber.de/bbs/user/70544.xls
Wenn ich zum Beispiel die Kosten fuer den Monat Juli vergleiche dann muss man ja in der User form zuerst Juli auswaehlen.
Und nach dem Auswaehlen soll sich jetzt nicht nur das Delta ausrechnen sondern es sollen sich auch die Spalten E bis V und Z-AN ausblenden.
Das heisst ich moechte nach des Monatsauswahl nur den aktuellen Monat und die zwei Spalten danach sehen und natuerlich auch die Planungskosten und das Delta zwischen Plan und tatsaechlich.
Hat jemand eine Idee?
Daniela
Anzeige
Alles Spalten ausblenden - ausser gewählten Monat
12.07.2010 15:54:38
NoNet
Hallo Daniela,
so geht's :
Private Sub cmdOK_Click()
Dim lngS As Long
lngS = Application.Match(cmbMonat.Value, [1:1], 0)
If lngS > 0 Then
[AP2:AP100].Formula = _
"=IF(RC[-" & 42 - lngS & "]="""","""",RC[-" & 42 - lngS & "]-RC[-1])"
        Columns("E:AN").Hidden = True
Columns(lngS).Resize(, 3).Hidden = False
End If
End Sub
Gruß, NoNet
Zeilen ausblenden
12.07.2010 16:12:06
daniela.schmidt@atlantisfoundries.com
Und die letzte Frage dazu hoffe ich...
aus der Beispiel Datei von NoNet:
https://www.herber.de/bbs/user/70544.xls
Wie kann ich das machen, dass ich nur die Zeilen sehe, in denen in der Spalte Planungskosten ein Wert steht.
Das heisst ich moechte, die Zeilen ausblenden, die keinen Wert haben.
Danke!!
Daniela
Anzeige
TIP : Probier's mal mit dem Autofilter _oT
12.07.2010 16:31:00
NoNet
_oT
AW: TIP : Probier's mal mit dem Autofilter _oT
13.07.2010 07:14:15
daniela.schmidt@atlantisfoundries.com
Auf den Autofilter bin ich auch gekommen.
Ich soll jedoch ein Tool machen, bei dem das alles automatisch geht und bei dem der Anwender so wenig wie moeglich machen muss.
Das heisst es waere gut, wenn man dann aus der userform einen Monat auswaehlt und dann eben automatisch die Zeilen ausgeblendet werden, in denen in der Spalte AP keine Werte stehen.
Also beim Delta zwischen Planungskosten und Kosten des aktuellen Monats.
Daniela
vielleicht mit dem Spezialfilter...
13.07.2010 08:17:46
Tino
Hallo,
With Tabelle1
.Range("AQ2").FormulaR1C1 = "=RC[-1]"""""
.Range("E1:AQ10000").AdvancedFilter xlFilterInPlace, .Range("AQ1:AQ2")
.Range("AQ2").Value = ""
End With
Gruß Tino
Anzeige
kein interesse mehr? oT.
14.07.2010 10:32:14
Tino

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige