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

RNG9 Formel vorgeben

RNG9 Formel vorgeben
13.07.2022 09:37:31
Ralf
Guten Morgen,
In meine Code verweise ich mit RNG9 = " =F18 " die in der Maske E18 erneuert wird. In der Maske Zelle F18 steht folgende Formel '=wenn(Kalkulation!E6>0;(Kalkulation!E6);Datenbank!V1)'.
Jetzt ist meine Frage wie kann ich die v. g. Formel in meine Code anstelle "=F18" eintragen. Bei meinen Versuch das zu machen habe ich eine Fehlermeldung jedes mal erhalten.
Hat jemand dafür eine passende Antwort ?
Gruß
Ralf

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: RNG9 Formel vorgeben
13.07.2022 10:48:26
GerdL

RNG9 = Evaluate("=IF(Kalkulation!E6>0,(Kalkulation!E6),Datenbank!V1)")
Guten Morgen Ralf,
probier 's mal.
Gruß Gerd
AW: RNG9 Formel vorgeben
13.07.2022 14:07:03
UweD
Hallo Ralf
ich meine der Code stammt ursprünglich von mir.
Das eigentliche Problem schein hier zu sein.

                RNG9.FormulaR1C1 = "=IF(Kalkulation!R[-12]C>0,(Kalkulation!R[-12]C),Datenbank!R[-17]C[17])"
Ich hab ihn nochmal "aufgeräumt", aber NICHT getestet

Private Sub Worksheet_Change(ByVal Target As Range)
Dim TB As Worksheet, Kunu, Datum, Zeit, Zeile As Long
Dim SpK As Integer, SpD As Integer, SpR As Integer, SpG As Integer, SpN As Integer, SpL As Integer, SpV As Integer, SpA As Integer, SpX As Integer, SpY As Integer, SpZ As Integer
Dim RNG1 As Range, RNG2 As Range, RNG3 As Range, RNG4 As Range, RNG5 As Range, RNG6 As Range, RNG7 As Range, RNG8 As Range, RNG9 As Range, RNG10 As Range, RNG11 As Range, Zelle As Range
'On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"
Set TB = Sheets("Datenbank")
SpK = 2 'Spalte der Kundennummer =B
SpD = 15 'Spalte mit Datum =O + P
SpR = 13 'Spalte mit Kommentar = N
SpG = 9 'Spalte mit Zusatzinformation = J
SpS = 17 'Spalte für Kundenstatus = Q
SpN = 19 'Spalte für Angebotsnummer = S
SpL = 20 'Spalte für Listenpreis = T
SpV = 21 'Spalte für Verkauspreis = U
SpA = 18 'Spalte für Angebotsdatum = R
SpX = 22 'Spalte für Jahresverbrauch = V
SpY = 23 ' Spalte für Anlagengröße
SpZ = 24 'Spalte für Speicher
Set RNG1 = Range("C13") 'Kommentar
Set RNG2 = Range("C14,C15") 'Datum Uhrzeit
Set RNG3 = Range("C11") 'Info oder Mobil oder Mail
Set RNG4 = Range("C12") 'Kundenstaus
Set RNG5 = Range("D12") 'Angebotsnummer
Set RNG6 = Range("K17") 'Listenpreis
Set RNG7 = Range("K20") 'Verkaufspreis
Set RNG8 = Range("N18") 'Verkaufspreis
Set RNG9 = Range("E18") 'Jahresverbrauch
Set RNG10 = Range("E19") 'Anlagengröße
Set RNG11 = Range("E20") 'Speicher
'MsgBox Target.Address
Dim X As Boolean
'NUR, wenn in C4 oder C14 eine Änderung erfolgt, werden in der Vorlage die Pflichtfelder wieder geleert
If Target.Address = "$C$4" Or _
Target.Address = "$C$14" Then 'C4 ist die Zelle, in der Kundennr eingegeben wird; $-Zeichen nicht entfernen;C14 = Uhrzeiteingabe
Sheets("Terminvorlage").Range("leeren").Value = "" 'das, was du "per Hand" mit leeren - delete - ok - delete gemacht hast, passiert hier mit dem einen Befehl
Sheets("Kalkulation").Range("leerenKalk").Value = "" 'das, was du "per Hand" mit leeren - delete - ok - delete gemacht hast, passiert hier mit dem einen Befehl
If Sheets("Datenblatt").ProtectContents Then
Sheets("Datenblatt").Unprotect "tresor1958"
X = True
End If
Sheets("Datenblatt").Range("leerenDat").Value = ""
If X Then Sheets("Datenblatt").Protect "tresor1958"
End If
'nur bei Änderungen in diesen Zellen auslösen
If Not Intersect(Union(RNG1, RNG2, RNG3, RNG4, RNG5, RNG6, RNG7, RNG8, RNG9, RNG10, RNG11), Target) Is Nothing Then
Kunu = Range("C4")
If WorksheetFunction.CountIf(TB.Columns(SpK), Kunu) > 0 Then
'Kunde bereits vorhanden?
Zeile = WorksheetFunction.Match(Kunu, TB.Columns(SpK), 0)
Else
'Kunde nicht vorhanden?
MsgBox "Kundennummer nicht gefunden"
Exit Sub
End If
If Not Intersect(RNG1, Target) Is Nothing Then
'Restdaten eintragen
TB.Cells(Zeile, SpR).Offset(0, Target.Column - 2) = Target
End If
If Not Intersect(RNG2, Target) Is Nothing Then
Datum = Range("C14")
Zeit = Range("C15")
'Datum / Zeit; Beides muss eingetragen sein
If IsDate(Datum) And IsNumeric(Zeit) And Zeit  0 Then
'Zeit und Datum eintragen
TB.Cells(Zeile, SpD) = Datum
TB.Cells(Zeile, SpD + 1) = Format(Zeit, "hh:mm")
'Gesprächsnotizen eintragen/löschen
For Each Zelle In RNG3
If Zelle.Text  "" Then
If Target.Offset(0, 1).Text  "0" Then
If MsgBox("Soll die vorhandene Notiz in der Zeile " _
& Zelle.Row & " überschrieben werden?", _
vbQuestion + vbOKCancel + vbDefaultButton2, _
"Eintrag überschreiben") = vbOK Then
TB.Cells(Zeile, SpG).Offset(0, Zelle.Row - 10) = _
Zelle.Text
End If
Else
TB.Cells(Zeile, SpG).Offset(0, Zelle.Row - 10).Value = _
Zelle.Text
End If
End If
Next
'reset
Application.EnableEvents = False
RNG1 = "": RNG2 = "": RNG3 = "": RNG4 = "": RNG5 = "": RNG6 = "=N17": RNG7 = "=N20": RNG8 = "=N15"
RNG9.FormulaR1C1 = "=IF(Kalkulation!R[-12]C>0,(Kalkulation!R[-12]C),Datenbank!R[-17]C[17])"
RNG10 = "=F19": RNG11 = "=F20"
Application.EnableEvents = True
MsgBox "Erledigt"
End If
End If
If Not Intersect(RNG3, Target) Is Nothing Then
'Info Mobil und Mail eintragen
TB.Cells(Zeile, SpR).Offset(0, Target.Column - 6) = Target
End If
If Not Intersect(RNG4, Target) Is Nothing Then
'Kundenstatus eintragen
TB.Cells(Zeile, SpS).Value = Target.Value
End If
If Not Intersect(RNG5, Target) Is Nothing Then
'Angebotsnummer eintragen
TB.Cells(Zeile, SpN).Value = Target.Value
End If
'Listenpreis
TB.Cells(Zeile, SpL).Value = RNG6.Value
'Verkaufspreis
TB.Cells(Zeile, SpV).Value = RNG7.Value
'Angebotsdatum
TB.Cells(Zeile, SpA).Value = RNG8.Value
'Jahresverbrauch
TB.Cells(Zeile, SpX).Value = RNG9.Value
'Anlagengröße
TB.Cells(Zeile, SpY).Value = RNG10.Value
'Speicher
TB.Cells(Zeile, SpZ).Value = RNG11.Value
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: RNG9 Formel vorgeben
13.07.2022 16:45:00
Ralf
Hallo Uwe,
RNG9 scheint zu klappen, wie ich es probiert habe.
Nun wollte ich alleine RNG10 bis RNG 13 selber machen um dir die Arbeit zu ersparen, Ich verstehe leider nicht in deinen geänderten Code was es bedeutet und zwar was in den Rechteckklammern steht worauf bezieht es sich
Gruß
Ralf
AW: RNG9 Formel vorgeben
14.07.2022 08:17:58
UweD
Hallo
nutze den Recorder dafür
- gehe in die Zelle, wo die Formel drinsteht (drin stehen soll).
- starte den Recorder
- drücke F2 (oder Doppelclick in die Zelle)
- Enter
- stoppe den Recorder
Wenn du dir nun den Code ansiehst, kannst du den Teil kopieren.
LG UweD
Anzeige
AW: RNG9 Formel vorgeben
14.07.2022 18:08:18
Ralf
Hallo Uwe,
ich habe das mal ausprobiert, aber irgendwie kann ich das nicht, kannst du mir bitte auf Grund der Liste ( FOTO) mir den Code schreiben.
Ich verstehe überhaupt nicht in deine Code wie du z.B: auf Kalkulation!R[-12] kommst (meine Bezug ist doch Kalkulation!E6 ) resp. Datenbank!R[-17]C[17] wo der Bezug bei mir auf Datenbank!V1 liegt.
Sorry, aber das sind alles für mich bömische Dörfer.
Das wäre wirklich nett von dir.
Gruß
Ralf
AW: RNG9 Formel vorgeben
15.07.2022 08:24:55
UweD
Hallo
das ist die Row Column Darstellung
=IF(Kalkulation!R[-12]C&GT0,(Kalkulation!R[-12]C) ,Datenbank!R[-17]C[17])
Die Formel im Blatt in E18 dazu wäre
=WENN(Kalkulation!E6&GT0;(Kalkulation!E6);Datenbank!V1)
Ist ein Wert hinter R/C in [ ] angegeben, ist das eine Verschiebung um x Zellen
Sind keine [ ] angegeben, sind das absolute Angaben.
R[-12]C bedeutet also: von der aktuellen Position 12 Zeilen hoch (kein Wert hinter C) also kein Spaltenversatz ==&GT E6
Datenbank!R[-17]C[17]) analog dann: ins Blatt Datenbank, dort 17 Zeilen hoch und 17 Spalten nach rechts ==&GT V1

Aber wie schon geschrieben; das ermittelt man am einfachsten über den Rekorder.
LG UweD
Anzeige
AW: RNG9 Formel vorgeben
13.07.2022 17:59:30
Ralf
Hallo Uwe,
ich habe hier mal die RNG `s zur Info
Userbild
Ich weis nicht was los ist aber alle Dateien, auch wo ich dir jetzt das Bild gesendet habe, sind um die 3,0MB größ
Gruß
Ralf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige