Autofilter verändert Ergebnis der Formel & Rechnen mit VBA

Moderator: ModerationP

Autofilter verändert Ergebnis der Formel & Rechnen mit VBA

Beitragvon Hippi4v2a » 07. Dez 2017, 20:32

Hallo,

Ich habe eine Formel mit der ich die Entfernung zwischen 2 Geokoordinaten berechne.

Code: Alles auswählen
=WENN(ODER($AG$2="";$AH$2="");"";ARCCOS(SIN($AG$2*PI()/180)*SIN(AG3*PI()/180)+COS($AG$2*PI()/180)*COS(AG3*PI()/180)*COS(AH3*PI()/180-$AH$2*PI()/180))*MITTELWERT(6378,137;6356,752))

Hatte ich über das alte Forum gefunden :)
lat und lon
AG2 und AH2 ist der Standort
AG3 und AH3 ist der Zielort
Sobald ich dabei aber dann den Autofilter benutze verändert es die Ergebnisse.
Weiss einer was das ist und könnte helfen?
Zuletzt geändert von Hippi4v2a am 08. Dez 2017, 11:10, insgesamt 1-mal geändert.
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit

Beitragvon Hippi4v2a » 07. Dez 2017, 21:44

Hallo,
Ich habe mir da gerade überlegt "einfach" das Ergebnis nur per VBA zu berechnen und einzutragen.
das Problem dabei ist dann die Formel für VBA "umzustricken".
Kann mir da einer helfen die Formel so zu stricken das es mit VBA geht?
Zuletzt geändert von Hippi4v2a am 08. Dez 2017, 13:59, insgesamt 1-mal geändert.
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit

Beitragvon Hippi4v2a » 07. Dez 2017, 21:57

Hallo,
also bis hier komme ich noch

Code: Alles auswählen
    For j = 2 To letztezeile
        If Not IsEmpty(Cells(2, rnglat.Column).Value) Or Not IsEmpty(Cells(2, rnglon.Column).Value) Then
            Cells(j, rngEntf.Column).Value = Application.Evaluate("=ARCCOS(SIN(Cells(2, rnglat.Column)*PI()/180)*SIN(Cells(j, rnglat.Column)*PI()/180)+COS(Cells(2, rnglat.Column)*PI()/180)*COS(Cells(j, rnglat.Column)*PI()/180)*COS(Cells(j, rnglon.Column)*PI()/180-Cells(2, rnglon.Column)*PI()/180))*MITTELWERT(6378,137;6356,752)")
        End If
    Next j

Aber dann kenne ich mich nicht mehr aus weil ich das viel zu selten mache. :(
Zuletzt geändert von Hippi4v2a am 08. Dez 2017, 14:00, insgesamt 1-mal geändert.
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit

Beitragvon Hippi4v2a » 07. Dez 2017, 22:25

Hallo,

Code: Alles auswählen
Cells(j, rngEntf.Column).Value = Application.Evaluate("=ACOS(SIN(") & Cells(2, rnglat.Column) & ("*PI()/180)*SIN(") & Cells(j, rnglat.Column) & ("*PI()/180)+COS(") & Cells(2, rnglat.Column) & ("*PI()/180)*COS(") & Cells(j, rnglat.Column) & ("*PI()/180)*COS(") & Cells(j, rnglon.Column) & ("*PI()/180-") & Cells(2, rnglon.Column) & ("*PI()/180))*AVERAGE(6378,137;6356,752)")

so klappt es nicht :(
Zuletzt geändert von Hippi4v2a am 08. Dez 2017, 14:00, insgesamt 1-mal geändert.
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel

Beitragvon theoS » 07. Dez 2017, 22:40

Sobald ich dabei aber dann den Autofilter benutze verändert es die Ergebnisse.

Wieso eigentlich?
und wie?
Code: Alles auswählen
 Application.Evaluate(

Das ist glaube ich nicht zielführend.
schau dir mal das an:
https://msdn.microsoft.com/de-de/vba/ex ... erty-excel
und das
https://msdn.microsoft.com/de-de/vba/ex ... erty-excel

Code: Alles auswählen
Cells(j, rngEntf.Column).FormulaR1C1 "=ACOS(SIN(") & Cells(2, rnglat.Column) & ("*PI()/180)*SIN(") & Cells(j, rnglat.Column) & ("*PI()/180)+COS(") & Cells(2, rnglat.Column) & ("*PI()/180)*COS(") & Cells(j, rnglat.Column) & ("*PI()/180)*COS(") & Cells(j, rnglon.Column) & ("*PI()/180-") & Cells(2, rnglon.Column) & ("*PI()/180))*AVERAGE(6378,137;6356,752)"
meinst du wahrscheinlich, aber das trägt dir ja auch nur die Formel ein.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3672
Registriert: 19. Apr 2008, 00:14

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit

Beitragvon Hippi4v2a » 07. Dez 2017, 22:59

Hi Theo,
Super das du noch wach bist :)

Code: Alles auswählen
Cells(j, rngEntf.Column).Value = WorksheetFunction.Acos(WorksheetFunction.Sin(Cells(2, rnglat.Column) * WorksheetFunction.Pi() / 180) * WorksheetFunction.Sin(Cells(j, rnglat.Column) * WorksheetFunction.Pi() / 180) + WorksheetFunction.Cos(Cells(2, rnglat.Column) * WorksheetFunction.Pi() / 180) * WorksheetFunction.Cos(Cells(j, rnglat.Column) * WorksheetFunction.Pi() / 180) * WorksheetFunction.Cos(Cells(j, rnglon.Column) * WorksheetFunction.Pi() / 180 - Cells(2, rnglon.Column) * WorksheetFunction.Pi() / 180)) * WorksheetFunction.Average(6378.137, 6356.752)


Laufzeitfehler 438 Methode kennt er nicht.
Zuletzt geändert von Hippi4v2a am 08. Dez 2017, 14:01, insgesamt 1-mal geändert.
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit

Beitragvon Hippi4v2a » 07. Dez 2017, 23:15

Hallo,

Code: Alles auswählen
    For j = 2 To letztezeile
        If IsEmpty(Cells(2, rnglat.Column).Value) Or IsEmpty(Cells(2, rnglon.Column).Value) Then
            Cells(j, rngEntf.Column).Clear
        Else
            With Worksheets("Datenbank")
                .Cells(j, rngEntf.Column).Value = WorksheetFunction.Acos(WorksheetFunction.Sin(.Cells(2, rnglat.Column) * WorksheetFunction.Pi() / 180) * WorksheetFunction.Sin(.Cells(j, rnglat.Column) * WorksheetFunction.Pi() / 180) + WorksheetFunction.Cos(.Cells(2, rnglat.Column) * WorksheetFunction.Pi() / 180) * WorksheetFunction.Cos(.Cells(j, rnglat.Column) * WorksheetFunction.Pi() / 180) * WorksheetFunction.Cos(.Cells(j, rnglon.Column) * WorksheetFunction.Pi() / 180 - .Cells(2, rnglon.Column) * WorksheetFunction.Pi() / 180)) * WorksheetFunction.Average(6378.137, 6356.752)
            End With
        End If
    Next j


so leider auch nicht immer noch der Laufzeitfehler 438.
Zuletzt geändert von Hippi4v2a am 08. Dez 2017, 14:01, insgesamt 1-mal geändert.
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit

Beitragvon Hippi4v2a » 08. Dez 2017, 00:05

Hallo,

Code: Alles auswählen
    For j = 2 To letztezeile
        If IsEmpty(Cells(2, rnglat.Column).Value) Or IsEmpty(Cells(2, rnglon.Column).Value) Then
            Cells(j, rngEntf.Column).Clear
        Else
            With Worksheets("Datenbank")
                .Cells(j, rngEntf.Column).Formula = "=ACOS(SIN(" & .Range(.Cells(2, rnglat.Column)) & "*PI()/180)*SIN(" & .Range(.Cells(j, rnglat.Column)) & "*PI()/180)+COS(" & .Range(.Cells(2, rnglat.Column)) & "*PI()/180)*COS(" & .Range(.Cells(j, rnglat.Column)) & "*PI()/180)*COS(" & .Range(.Cells(j, rnglon.Column)) & "*PI()/180-" & .Range(.Cells(2, rnglon.Column)) & "*PI()/180))*AVERAGE(6378,137;6356,752)"
            End With
        End If
    Next j


so leider auch nicht :(

Nur der Laufzeitfehler ist jetzt ein 1004 Anwendungs- oder Objekt-definierter Fehler
Zuletzt geändert von Hippi4v2a am 08. Dez 2017, 14:01, insgesamt 1-mal geändert.
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit

Beitragvon Hippi4v2a » 08. Dez 2017, 01:20

Hallo,

Code: Alles auswählen
'Cells(j, rngEntf.Column).Value = Application.Evaluate("=ACOS(SIN(") & Cells(2, rnglat.Column) & ("*PI()/180)*SIN(") & Cells(j, rnglat.Column) & ("*PI()/180)+COS(") & Cells(2, rnglat.Column) & ("*PI()/180)*COS(") & Cells(j, rnglat.Column) & ("*PI()/180)*COS(") & Cells(j, rnglon.Column) & ("*PI()/180-") & Cells(2, rnglon.Column) & ("*PI()/180))*AVERAGE(6378,137;6356,752)")
'Cells(j, rngEntf.Column).Value = Application.Evaluate("=ACOS(SIN(Cells(2, rnglat.Column)*PI()/180)*SIN(Cells(j, rnglat.Column)*PI()/180)+COS(Cells(2, rnglat.Column)*PI()/180)*COS(Cells(j, rnglat.Column)*PI()/180)*COS(Cells(j, rnglon.Column)*PI()/180-Cells(2, rnglon.Column)*PI()/180))*AVERAGE(6378,137;6356,752)")
    For j = 2 To letztezeile
        If IsEmpty(Cells(2, rnglat.Column).Value) Or IsEmpty(Cells(2, rnglon.Column).Value) Then
            Cells(j, rngEntf.Column).Clear
        Else
            Set objWorksheet = ThisWorkbook.Worksheets("Datenbank")
            With objWorksheet
'                objWorksheet.Cells(j, rngEntf.Column).Formula = "=ACOS(SIN(" & .Cells(2, rnglat.Column) & "*PI()/180)*SIN(" & .Cells(j, rnglat.Column) & "*PI()/180)+COS(" & .Cells(2, rnglat.Column) & "*PI()/180)*COS(" & .Cells(j, rnglat.Column) & "*PI()/180)*COS(" & .Cells(j, rnglon.Column) & "*PI()/180-" & .Cells(2, rnglon.Column) & "*PI()/180))*AVERAGE(6378,137;6356,752)"
'                objWorksheet.Cells(j, rngEntf.Column).Formula = "=ACOS(SIN(" & .Range(.Cells(2, rnglat.Column)) & "*PI()/180)*SIN(" & .Range(.Cells(j, rnglat.Column)) & "*PI()/180)+COS(" & .Range(.Cells(2, rnglat.Column)) & "*PI()/180)*COS(" & .Range(.Cells(j, rnglat.Column)) & "*PI()/180)*COS(" & .Range(.Cells(j, rnglon.Column)) & "*PI()/180-" & .Range(.Cells(2, rnglon.Column)) & "*PI()/180))*AVERAGE(6378,137;6356,752)"
                objWorksheet.Cells(j, rngEntf.Column).Formula = "=ACOS(SIN(" & .Range(.Cells(2, rnglat.Column)).Address(0, 0) & "*PI()/180)*SIN(" & .Range(.Cells(j, rnglat.Column)).Address(1, 1) & "*PI()/180)+COS(" & .Range(.Cells(2, rnglat.Column)).Address(2, 2) & "*PI()/180)*COS(" & .Range(.Cells(j, rnglat.Column)).Address(3, 3) & "*PI()/180)*COS(" & .Range(.Cells(j, rnglon.Column)).Address(4, 4) & "*PI()/180-" & .Range(.Cells(2, rnglon.Column)).Address(5, 5) & "*PI()/180))*AVERAGE(6378,137;6356,752)"
'                objWorksheet.Cells(j, rngEntf.Column).Value = WorksheetFunction.Acos(WorksheetFunction.Sin(.Cells(2, rnglat.Column) * WorksheetFunction.Pi() / 180) * WorksheetFunction.Sin(.Cells(j, rnglat.Column) * WorksheetFunction.Pi() / 180) + WorksheetFunction.Cos(.Cells(2, rnglat.Column) * WorksheetFunction.Pi() / 180) * WorksheetFunction.Cos(.Cells(j, rnglat.Column) * WorksheetFunction.Pi() / 180) * WorksheetFunction.Cos(.Cells(j, rnglon.Column) * WorksheetFunction.Pi() / 180 - .Cells(2, rnglon.Column) * WorksheetFunction.Pi() / 180)) * WorksheetFunction.Average(6378.137, 6356.752)
            End With
        End If
    Next j


also mit gehen definitiv die Ideen aus :(
Zuletzt geändert von Hippi4v2a am 08. Dez 2017, 14:01, insgesamt 1-mal geändert.
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit

Beitragvon Hippi4v2a » 08. Dez 2017, 11:09

Hallo,

ich hoffe das einer helfen kann um 3 Uhr habe ich es dann sein gelassen es weiter zu versuchen.
Ich versuche mit der Formel die in VBA berechnet werden soll das Ergebnis an die Zellen zu übergeben was leider nicht klappt.

Code: Alles auswählen
    For j = 2 To letztezeile
        If IsEmpty(Cells(2, rnglat.Column).Value) Or IsEmpty(Cells(2, rnglon.Column).Value) Then
            Cells(j, rngEntf.Column).Clear
        Else
            Cells(j, rngEntf.Column).Value = Application.Evaluate("=ACOS(SIN(Cells(2, rnglat.Column)*PI()/180)*SIN(Cells(j, rnglat.Column)*PI()/180)+COS(Cells(2, rnglat.Column)*PI()/180)*COS(Cells(j, rnglat.Column)*PI()/180)*COS(Cells(j, rnglon.Column)*PI()/180-Cells(2, rnglon.Column)*PI()/180))*AVERAGE(6378,137;6356,752)")
        End If
    Next j
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit V

Beitragvon Hippi4v2a » 08. Dez 2017, 14:05

Hallo,
Hat keiner ne Idee dabei?
Gruß
Juli (Der Sommermonat)

Ich benutze nur Excel 2003.

Ne Rückmeldung wäre nett.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit V

Beitragvon theoS » 08. Dez 2017, 14:17

Durch deine Wursteleien wird auch keiner schlauer.
Lad die Datei mal hoch.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3672
Registriert: 19. Apr 2008, 00:14

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit V

Beitragvon Hippi4v2a » 08. Dez 2017, 14:24

Hallo,
geht nicht sind vertrauliche Informationen drin.
und die neu erstellen wird ne weile Dauern.
Benutzeravatar
Hippi4v2a
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1270
Registriert: 03. Okt 2005, 20:29
Wohnort: Essen

Re: Autofilter verändert Ergebnis der Formel & Rechnen mit V

Beitragvon theoS » 08. Dez 2017, 16:30

und die neu erstellen wird ne weile Dauern.

Dann mach mal. Kann ja nicht so viel vertrauliches sein an ein paar Koordinaten.

Du könntest dir ja auch noch zudem überlegen, was denn eigentlich nicht mehr funktioniert, wenn du den Autofilter betätigst.
Vielleicht ist es ja einfacher das abzustellen.
Aber wie gesagt, wenn man so gar keine Ahnung hat, was da wo steht und warum funktioniert oder nicht?
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3672
Registriert: 19. Apr 2008, 00:14


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste