Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabellenblattstruktur mit VBA erstellen
#11
Hallo,

Eigenschaften und Methoden würde ich immer angeben!
Ich arbeite zum Teil für Konzerne die die verschiedensten Officeversionen innerhalb des Konzerns nutzen.
Ich hatte einmal den Fall das ich bei einer Programmierung einen angeblichen Default Eigenschaft´nicht gesetzt hatte, die Programmierung funktionierte im deutschen Excel aber bei der eng. Version kam es zum Absturz.... und nein ich habe keine Local Geschichte verwendet. ^^ Da ging es auch nur um .Value

In jeder anderen Sprache würde der Compiler sofort schreien, wenn Eigenschaften und Methoden fehlen, VB/VBA verleitet dann einen immer wieder auf selbige zu vergessen, da ja angeblich Default.
Und wer weiß, vielleicht kommt MS ja wirklich mal auf die Idee VBA mal sauber programmieren zu lassen, dann haben einige Programmierer mal viel Arbeit vor sich.

lg
Chris
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#12
Hallo,

Peter Haserodt hatte dazu auch mal was geschrieben: Default: Kleines Wort - Grosse Wirkung

Gruß Uwe
Antworten Top
#13
Hallo Freunde,

diese ergänzende Diskussion aufgrund einer kleinen Nachfrage verdient das Prädikat WERTVOLL.
Danke. Vor allem mit den verlinkten Hinweisen ist dies eine richtig lehrreiche Exkursion ins VBA-Reich.

Thumps_upThumps_upThumbsupsmileyanimThumps_upThumps_up
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#14
Hallo @all,
finde dies was man/ich hier lesen kann/darf sehr interessant.
Das Blatt Papier ist geduldig und giert mit Bleistift/Kugelschreiber befüllt zu werden.
Die Schrift lässt dann sofort erkennen was wer wo meint.
Aber VBA für mich als Newbie ist eher die leere Rückseite des zu beschreibenden Blattes.

z.b.: Wie eine Formel in VBA schreiben (Excel selbst kein Thema) die dann doch Ellenlang wird, weil viele Verschachtelungen Verweise und und und inne sind?

Vielen Dank für die Fachmännische Ausführungen.
Ming Motto: Du et odda lasset - learning by doing

mfg
Antworten Top
#15
Hallo Frank,

(21.08.2014, 17:30)WergibtmirRat schrieb: z.b.: Wie eine Formel in VBA schreiben (Excel selbst kein Thema) die dann doch Ellenlang wird, weil viele Verschachtelungen Verweise und und und inne sind?

Formeln in Zellen schreiben
Formeln auslesen - Englische Formelnamen und mehr

Ansonsten heißt es wie Du richtig sagst: Learning by doing
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#16
(21.08.2014, 17:47)Steffl schrieb: Formeln in Zellen schreiben
Formeln auslesen - Englische Formelnamen und mehr
Hallo @all,
vielen Dank an all die Antwortgebenden
die Seiten sind studiert worden von mir. Augenmerk Matrixformeln
Ich habe ein kleines Problem oder Verständnisproblem
Beim schreiben eines Makros für Zelle xy das die Werte in yx+ ... analysiert (Wert korrekt einfügen/berechnen soll),
siehe Klartext hier:
F4 {=SUMMENPRODUKT(WENN(ISTZAHL(G4:Z4);G4:Z4;VERWEIS(G4:Z4;{"aa";"k";"s";"x"};{4;8;3;0}))*1)}
siehe Makro hier:
Selection.FormulaArray = _
"=SUMPRODUCT(IF(ISNUMBER(RC[1]:RC[20]),RC[1]:RC[20],LOOKUP(RC[1]:RC[20],{""aa"";""k"";""s"";""x""},{4;8;3;0}))*1)"
lässt sich hier nur für die jeweilige Zelle der Code schreiben oder tritt die Berechnung bei jeder neu hinzugefügen Zeile in Aktion.
Frage 2: Wenn ein Kriterium vergeben sein sollte (Suchtext) Spielname, sollte jede Formel einzeln aufgeführt oder in eine Schleife gesetzt werden?
Gedanke: Wenn Zelle "D" den Wert "A" dann nimm die Formel 1, wenn Zelle "D" den Wert "B" dann nimm die Formel 2...
If... Else... Schleife
habe damit so meine Schaffenskrise.
Ich bitte um Hilfe
Antworten Top
#17
Hallo Frank,

If...Else ist keine Schleife sondern eine Abfrage genauso wie zum Beispiel Select Case. Mal ein sinnlos Beispiel

Code:
Sub prcFrank()

   With Range("B1")
      Select Case Range("A1")
         Case 1
            .Formula = "=sum(RC[1]:RC[3])"
         Case 2
            .Formula = "=sum(RC[11]:RC[13])"
         Case Else
            .Value = "Falscher Wert"
      End Select
   End With
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#18
(22.08.2014, 19:53)Steffl schrieb: ...
If...Else ist keine Schleife sondern eine Abfrage...
Hallo Stefan,
Ich schrieb...
Zitat:_Beim schreiben eines Makros für Zelle xy das die Werte in yx+ ... analysiert (Wert korrekt einfügen/berechnen soll),
siehe Klartext hier:
F4 {=SUMMENPRODUKT(WENN(ISTZAHL(G4:Z4);G4:Z4;VERWEIS(G4:Z4;{"aa";"k";"s";"x"};{4;8;3;0}))*1)}
siehe Makro hier:
Selection.FormulaArray = _
"=SUMPRODUCT(IF(ISNUMBER(RC[1]:RC[20]),RC[1]:RC[20],LOOKUP(RC[1]:RC[20],{""aa"";""k"";""s"";""x""},{4;8;3;0}))*1)"
lässt sich hier nur für die jeweilige Zelle der Code schreiben oder tritt die Berechnung bei jeder neu hinzugefügen Zeile in Aktion.
Frage 2: Wenn ein Kriterium vergeben sein sollte (Suchtext) Spielname, sollte jede Formel einzeln aufgeführt oder in eine Schleife gesetzt werden?
Gedanke: Wenn Zelle "D" den Wert "A" dann nimm die Formel 1, wenn Zelle "D" den Wert "B" dann nimm die Formel 2..._

Neue Idee, weiss nicht ob das dann gehen könnte:
Alle Formeln sind an einem zentralen Ort (Makro;Klaseenmodul ...) werden dann durch Verweise während der Eingabe im UF angesprochen.

Was denkt ihr?
Was schreiben mir die VBA-Experten bzw. Excelianer von euch


2 auf die Vollen
Code:
=WENN(F1="2 auf die Vollen";WENN(A1="AA";4;WENN(A1="s";3;WENN(A1="x";0;WENN(A1="k";8;A1))))+WENN(B1="AA";4;WENN(B1="s";3;WENN(B1="x";0;WENN(B1="k";8;B1))));"")
gr.Hausnummer
Code:
=WENN(F1="gr.Hausnummer";WENN(A1="AA";4*100;WENN(A1="s";3*100;WENN(A1="x";0*100;WENN(A1="k";8*100;A1*100))))+WENN(B1="AA";4*10;WENN(B1="s";3*10;WENN(B1="x";0*10;WENN(B1="k";8*10;B1*10))))+WENN(C1="AA";4;WENN(C1="s";3;WENN(C1="x";0;WENN(C1="k";8;C1)))))
kl.Hausnummer
Code:
=WENN(F1="kl.Hausnummer";WENN(A1="AA";4*100;WENN(A1="s";3*100;WENN(A1="x";9*100;WENN(A1="k";8*100;A1*100))))+WENN(B1="AA";4*10;WENN(B1="s";3*10;WENN(B1="x";9*10;WENN(B1="k";8*10;B1*10))))+WENN(C1="AA";4;WENN(C1="s";3;WENN(C1="x";9;WENN(C1="k";8;C1)))))
Die Formelzeilen sind im Texteditor erstellt worden, habe nur fiktive Zellennamen genommen (Klartext), um es zu veranschaulichen
mfg
Antworten Top
#19
Hallo Frank,

meinst Du so? (Formel sind mal für den Bereich N1:N10 und Formel ist 2 auf die Vollen)

Code:
Sub prcWergibtMirRat()
   Dim lngC As Long
  
   For lngC = 1 To 10
      Cells(lngC, 14).FormulaR1C1 = "=IF(RC[-8]=""2 auf die Vollen"",IF(RC[-13]=""AA"",4,IF(RC[-13]=""s"",3,IF(RC[-13]=""x"",0,IF(RC[-13]=""k"",8,RC[-13]))))+IF(RC[-12]=""AA"",4,IF(RC[-12]=""s"",3,IF(RC[-12]=""x"",0,IF(RC[-12]=""k"",8,RC[-12])))),"""")"
   Next lngC
End Sub

Sub xxxxx()
   Range("N1:N10").FormulaR1C1 = "=IF(RC[-8]=""2 auf die Vollen"",IF(RC[-13]=""AA"",4,IF(RC[-13]=""s"",3,IF(RC[-13]=""x"",0,IF(RC[-13]=""k"",8,RC[-13]))))+IF(RC[-12]=""AA"",4,IF(RC[-12]=""s"",3,IF(RC[-12]=""x"",0,IF(RC[-12]=""k"",8,RC[-12])))),"""")"
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#20
(24.08.2014, 17:07)Steffl schrieb: ...meinst Du so...
Und schon wieder einen Haupttreffer gelandet Stefan.

Danke, ja so meinte ich es.
In der Spalte mit Spielname oder Spiel-ID sollte dann der Treffer erfolgen, ist eine Übereinstimmung mit Formelsuchtext gegeben so soll die Formel in Aktion treten.
Nur alle Formeln in einen Container pressen oder hier auch nach Namen sortiert ablegen. Ich habe keinerlei Vorstellung, wie anstellen.
Anschließend ärgert mich hier noch die Frage: Wie am Ende eines jeden Spiel's die Rangfolge richtig berechnen. In einem Thread wurde das ganze ja schon beantwortet (Tabellenblattstruktur)
Wie nur in VBA schreiben, da keine festen Werte stehen. Im Tabellenblatt in der Zelle E10 steht die Formel =summe(a10+b10). Per VBA habe ich ja nur die Spaltenangaben zur ersten leeren Zeile um hier Ergebnisse einzutragen oder berechnen.

Hoffe das war jetzt nicht zu unverständlich.

mfg
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste