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

Wenn-Funktion in unabhängiger Zelle

Wenn-Funktion in unabhängiger Zelle
24.01.2008 10:00:00
Toni
Hallo!
Ich bräcuhte bei einer Excel Formel Hilfe und zwar geht es um folgendes:
In Der Zelle ("A18") wird durch ein Makro ein Wert eingetragen der immer unterschiedlich ausfallen kann! Es handelt sich dabei um die Anzahl einer Bestellten Ware!
In der Zelle darunter also in ("A19") wird durch ein anders Makro ein entsprechender Preis eingetragen, der auch immer unterschiedlich sein kann, da manche Kunden Rabatte etc. bekommen!
Nun kann es aber sein, dass von der entsprechenden Ware nichts bestellt wurde, so wäre ("A18") also leer!
("A19") wird aber trotzdem mit einem Preis gefüllt, da die beiden Makros völlig unabhängig voneinander laufen! Das sieht einfach unprofessionell aus...
Deshalb möchte ich in einer dritten Zelle ("W19"), die NAchher nicht gedruckt wird und für den User nicht einzusehen ist eine WENN Abfrage eingeben, dass ("A19") leer sein soll wenn ("A18") kleiner ist als 0,001
Wenn der Wert größer als 0,001 ist, kann der durch das Makro bereits eingetrage Wert stehen bleiben!
Kann mir da jemand weiterhelfen? Wäre super!!
Gruß, Toni

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

Betreff
Datum
Anwender
Anzeige
AW: Wenn-Funktion in unabhängiger Zelle
24.01.2008 10:13:00
Jan3
Hi,
Am besten wäre den VBA-code abzuändern. Über eine Formel kannst Du das nicht realisieren.
Hast Du den Code für das Makro?
jan

AW: Wenn-Funktion in unabhängiger Zelle
24.01.2008 11:09:09
Toni
Servus Jan,
der Grundcode von den Makros ist immer der selbe Kopier- und Einfügecode und geht so:

Sub Rechnung_Preise_Füllen()
With Worksheets("Rechnung_W")
.Activate
.Rows("1:130").Hidden = False
End With
'Kopier- und Einfügecode
With Worksheets("pliste")
.Activate
'Bereich 1
.Range("B73:W73").Copy
Sheets("Rechnung_W").Range("A19").PasteSpecial Paste:=xlPasteValues
'Bereich 2
.Range("B66:W66").Copy
Sheets("Rechnung_W").Range("A28").PasteSpecial Paste:=xlPasteValues
'Bereich 3
.Range("B80:W80").Copy
Sheets("Rechnung_W").Range("A37").PasteSpecial Paste:=xlPasteValues
'Bereich 4
.Range("B52:W52").Copy
Sheets("Rechnung_W").Range("A46").PasteSpecial Paste:=xlPasteValues
'Bereich 5
.Range("B45:W45").Copy
Sheets("Rechnung_W").Range("A55").PasteSpecial Paste:=xlPasteValues
'Bereich 6
.Range("B38:W38").Copy
Sheets("Rechnung_W").Range("A64").PasteSpecial Paste:=xlPasteValues
'Bereich 7
.Range("B31:W31").Copy
Sheets("Rechnung_W").Range("A73").PasteSpecial Paste:=xlPasteValues
'Bereich 8
.Range("B24:W24").Copy
Sheets("Rechnung_W").Range("A82").PasteSpecial Paste:=xlPasteValues
'Bereich 9
.Range("B17:W17").Copy
Sheets("Rechnung_W").Range("A91").PasteSpecial Paste:=xlPasteValues
' Bereich 10
.Range("B10:W10").Copy
Sheets("Rechnung_W").Range("A100").PasteSpecial Paste:=xlPasteValues
'Bereich 11
.Range("B59:W59").Copy
Sheets("Rechnung_W").Range("A109").PasteSpecial Paste:=xlPasteValues
'Bereich 12
.Range("B87:W87").Copy
Sheets("Rechnung_W").Range("A118").PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
End Sub


Als erstes fügt das Makro also wie ich bereits als Beispiel erwähnt hatte die kopierten Preise in ("A19") ein! Das soll er allerdings nur tun, wenn eine Zelle darüber auch ein Wert steht!
Hinzukommt ja noch dass immer gleich ganze Bereiche kopiert und eingefügt werden also keine einzelnen Zellen...
Bin weiterhin für jeden Tip dankbar! Wenn das mit VBA zu realisieren ist, wäre natürlich noch besser!!
Gruß, Toni

Anzeige
AW: Wenn-Funktion in unabhängiger Zelle
24.01.2008 12:03:00
Mag
Hi,
so?:

'Bereich 1
If Sheets("Rechnung_W").Range("A18") >= 0.001 Then
.Range("B73:W73").Copy
Sheets("Rechnung_W").Range("A19").PasteSpecial Paste:=xlPasteValues
End If
'Bereich 2


Gruss

AW: Wenn-Funktion in unabhängiger Zelle
24.01.2008 12:06:00
IngGi
Hallo Toni,
dafür gibt's die If...then-Bedingung:


If .Range("A18") > 0 Then
  .Range("B73:W73").Copy
  Sheets("Rechnung_W").Range("A19").PasteSpecial Paste:=xlPasteValues
End If

Gruß Ingolf

Anzeige
AW: Wenn-Funktion in unabhängiger Zelle
24.01.2008 12:56:00
Toni
Hallo Ingolf, hallo Mag!
Danke euch für eure Antworten!
Aber das Problem bei der Sache ist, dass ja nicht nur in ("A18") was eingefügt wird...
Kopiert werden ja die Werte aller Zellen von ("B73") bis ("W73"), also eine ganze Reihe von Zellen
'Bereich 1
.Range("B73:W73").Copy
Sheets("Rechnung_W").Range("A19").PasteSpecial Paste:=xlPasteValues
eingefügt werden sie zwar in Zelle ("A19") aber natürlich auch in ("B19"), ("C19") usw... es wird also eine ganze Reihe kopiert und auch die ganze Reihe eingefügt!
Dann steht mal ein Wert darüber (falls etwas bestellt wurde) und mal auch nicht.. das ist aber immer unterscheidlich!
So müsste ich ja jede Zelle einzeln kopieren und einfügen! Da es sich aber insgeasamt um tausende Zellen handelt ist das Zeitlich einfach nicht machbar...
Ich hoffe Ihr versteht mein Problem! Habe mich beim ersten Mal wohl nicht konkret genug ausgedrückt
Gruss, Toni

Anzeige
AW: Wenn-Funktion in unabhängiger Zelle
24.01.2008 15:43:30
IngGi
Hallo Toni,
du musst das auf jeden Fall einzeln prüfen und kopieren. Aber dafür gibt's ja Schleifen:


Dim rng As Range
For Each rng In Sheets("Rechnung_W").Range("A18:V18")
  If rng > 0 Then
    .Range("B73:W73").Copy
    Sheets("Rechnung_W").Cells(19, rng.Column).PasteSpecial Paste:=xlPasteValues
  End If
Next 'rng

Gruß Ingolf

Anzeige
AW: Wenn-Funktion in unabhängiger Zelle
25.01.2008 08:30:00
Toni
Servus Ingolf!
Vielen Dank!! Damit funktionierts!!
Hast mir ne Menge Arbeit gespart!
Gruß, Toni

AW: Wenn-Funktion in unabhängiger Zelle
25.01.2008 09:57:00
Toni
hallo!
Ich war wohl etwas voreilig... bekomme es leider immernoch nicht hin!
Das Makro trägt trotz Prüfung immernoch alle Preise ein und nicht nur die, wo auch etwas bestellt wude
Außerdem weiss ich nicht wie ich die Schleife von Ingolf weiterführen soll... kenne mich dafür leider zu wenig mit VBA aus...

Sub Rechnung_Preise_Füllen()
Dim rng As Range
For Each rng In Sheets("Rechnung_W").Range("A18:V18")
If rng > 0 Then
.Range("B73:W73").Copy
Sheets("Rechnung_W").Cells(19, rng.Column).PasteSpecial Paste:=xlPasteValues
End If
Next 'rng
End Sub


wie springt das Makro denn jetzt zum nächsten Bereich also zu
'Bereich 2
.Range("B66:W66").Copy
Sheets("Rechnung_G").Range("A28").PasteSpecial Paste:=xlPasteValues
und prüft hier wieder ob in ("A27:V27") irgendwo kein Wert eingetragen ist?
Gruß, Toni

Anzeige
AW: Wenn-Funktion in unabhängiger Zelle
25.01.2008 10:19:00
Mag
Hi,
Ansatz (nicht geprüft):

Option Explicit
Sub ttt()
Dim rng As Range
For Each rng In Sheets("Rechnung_W").Range("A18:V18")
If rng > 0 Then
Sheets("Rechnung_W").Cells(19, rng.Column) = .Range("B73:W73").Item(1, rng.Column)
End If
Next
End Sub


Analog für die anderen Bereiche.
Gruss

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige