Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Formel in Zelle mit VBA einfügen mit Variable


Betrifft: Formel in Zelle mit VBA einfügen mit Variable von: Andy
Geschrieben am: 05.02.2018 11:25:20

Hallo mal wieder eine Frage,

wie kann ich eine Formel per VBA an eine Zelle übergeben, die auch Variablen enthält?

Soweit funktioniert es ohne Variable.

Tabelle1.Cells(letztezeile + 1, 1).FormulaLocal = "=X1"


Jetzt ergibt sich aber aus der Variable i das X

Tabelle1.Cells(letztezeile + 1, 1).FormulaLocal = "=(i)1"


Wie muss die Formel dann richtig heissen, damit sich die Formel hinterher mit der Variable i individuell ausgibt. i wird zuvor mit Target.Column gefüttert.

  

Betrifft: AW: Formel in Zelle mit VBA einfügen mit Variable von: Sepp
Geschrieben am: 05.02.2018 11:27:36

Hallo Andy,

Tabelle1.Cells(letztezeile + 1, 1).FormulaLocal = "=" & Cells(1, i).Address(0, 0)
Gruß Sepp



  

Betrifft: AW: Formel in Zelle mit VBA einfügen mit Variable von: Andy
Geschrieben am: 05.02.2018 12:01:07

=#BEZUG!



bekomme dann leider immer diese Fehlermeldung als Formel in der Zeile


  

Betrifft: AW: Formel in Zelle mit VBA einfügen mit Variable von: Sepp
Geschrieben am: 05.02.2018 12:05:32

Hallo Andy,

dann wirst du schon mehr Infos geben müssen!

Welchen Wert hat 'letzteZeile'?
Welchen Wert hat 'i'?

Gruß Sepp



  

Betrifft: AW: Formel in Zelle mit VBA einfügen mit Variable von: Andy
Geschrieben am: 05.02.2018 12:09:53

i= Target.column

das Target wird auf Arbeitsblatt tabelle1 entnommen.


letztezeile = Tabelle4.UsedRange.SpecialCells(xlCellTypeLastCell).Row



die Einträge selbst funktionieren mit der Variable letztezeile...zb durch

Tabelle4.Cells(letztezeile + 1, 3).Value = e



Ich habe eben lediglich das Problem, dass die Formel nicht richtig übernommen wird.


  

Betrifft: AW: Formel in Zelle mit VBA einfügen mit Variable von: Sepp
Geschrieben am: 05.02.2018 12:12:39

Hallo Andy,

also bei mir funktioniert der Code, ich kann aber nicht wissen, wie dein gesamter Code aussieht?

Gruß Sepp



  

Betrifft: AW: Formel in Zelle mit VBA einfügen mit Variable von: Andy
Geschrieben am: 05.02.2018 12:16:19

kann es vl daran liegen, dass das Format der Adressse dann falsch ist ? Also 1/24 nicht X1


  

Betrifft: Ratespiel? Zeig den gesamten Code! o.T. von: Sepp
Geschrieben am: 05.02.2018 12:20:30

Gruß Sepp



  

Betrifft: AW: Ratespiel? Zeig den gesamten Code! o.T. von: Andy
Geschrieben am: 05.02.2018 12:57:19

Private Sub Worksheet_Change(ByVal Target As Range)


'Benötigte Variablen einlesen und belegen - Public Variablen daher im Modul 

        i = Target.Column
        j = Target.Row
        
  




    If Target.Text = "WF" Then
       Wert = MsgBox("Möchten Sie eintragen?", vbYesNo Or vbQuestion Or vbDefaultButton1, " _
Hinweis")
       If Wert = vbNo Then
       Target.Value = ""
       Exit Sub
   Else
        
       
        letztezeile = Tabelle4.UsedRange.SpecialCells(xlCellTypeLastCell).Row
        

        Tabelle4.Cells(letztezeile + 1, 5).FormulaLocal = "=" & Cells(8, i).Address(0, 0)
        Tabelle4.Cells(letztezeile + 1, 8).Value = Format(Now, "DD.MM.YYYY hh:mm") & ", " &  _
Environ("Username")




   End If
   End If
End Sub



  

Betrifft: AW: Ratespiel? Zeig den gesamten Code! o.T. von: Sepp
Geschrieben am: 05.02.2018 13:05:48

Hallo Andy,

also mit der Code läuft.

Allerdings glaube ich, dass die Formel auf das Tabellenblatt in dem die Eingabe erfolgt verweisen soll, oder?

Microsoft Excel Objekt Tabelle2

Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
  Dim i As Long, j As Long, letzteZeile As Long 
 
  i = Target.Column 
  j = Target.Row 
   
  On Error GoTo ErrorHandler 
  Application.EnableEvents = False 
  If Target.Text = "WF" Then 
    If MsgBox("Möchten Sie eintragen?", vbYesNo Or vbQuestion Or vbDefaultButton1, _
      " Hinweis") = vbNo Then 
      Target.Value = "" 
    Else 
      letzteZeile = Tabelle4.UsedRange.SpecialCells(xlCellTypeLastCell).Row 
      Tabelle4.Cells(letzteZeile + 1, 5).FormulaLocal = _
        "='" & Me.Name & "'!" & Cells(8, i).Address(0, 0) 
      Tabelle4.Cells(letzteZeile + 1, 8).Value = _
        Format(Now, "DD.MM.YYYY hh:mm") & ", " & Environ("Username") 
    End If 
  End If 
   
ErrorHandler: 
  Application.EnableEvents = True 
End Sub 
 


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Gruß Sepp



  

Betrifft: AW: Ratespiel? Zeig den gesamten Code! o.T. von: Andy
Geschrieben am: 05.02.2018 13:41:58

Also er kommt mit der Formel einfach nicht klar. ....

Meine Variablen hatte ich zuvor als Public-Variablen deklariert, da ich die noch in ein paar anderen Bereichen benötige.

Also in einem Modul als:

Public i$
Public j$




Es kommt immer Laufzeitfehler 1004: Anwendungs pder objektdefinierter Fehler.


  

Betrifft: AW: Ratespiel? Zeig den gesamten Code! o.T. von: Sepp
Geschrieben am: 05.02.2018 13:43:36

Hallo Andy,

dann wirst du wohl die komplette Datei hochladen müssen.

Gruß Sepp



  

Betrifft: AW: Ratespiel? Zeig den gesamten Code! o.T. von: Andy
Geschrieben am: 05.02.2018 14:12:49

Ich habs. Die deklarierung der Variable heisst nicht Public i$ sonder Public i as long


Beiträge aus dem Excel-Forum zum Thema "Formel in Zelle mit VBA einfügen mit Variable"