erstelle Ehrenamtlich die Abrechnung für Garagen, 1- 18
habe in Excel ein Tabellenblatt zur Energieabrechnung erstellt. Der Bereich des Blattes geht von Spalten A bis J und jeweils 31 Zeilen. Im Bereich I 1 ist der Zählerstand Neu und im Bereich J 1 Zählerstand Vorjahr eingetragen. Für beide Bereiche sind ab den zweiten Zeilen, also I 2 bzw. J 2 die Zählerstände (Zahlen) erfasst, bis I 16 und J 16. (Abnehmer)
Habe ein Aktive X Steuerelement als Schaltfläche im Bereich der Tabelle erstellt. Zur Zeit ohne Funktion. Damit möchte ich auf Knopfdruck den Inhalt der Spalten im Bereich I 2:16 und J 2:16 tauschen. Befasse mich erstmals mit der Problematik als 80 jähriger und wäre für Hilfe oder Tipps dankbar.
10.02.2021, 17:45 (Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2021, 17:51 von echo.)
Hallo du must Excel erst mal "beibringen" was passieren soll wenn du auf den Button klickst. (mache eine Sicherheitskopie!)
https://www.computerwoche.de/v/excel-das...en,1039449 Starte den Makrorekorder und führe alle Schritte die ausgeführt werden sollen nach einander aus. Beende die Aufzeichnung Ist das erledigt, füge eine Schaltfläche aus der Formularsteuerelemente-Toolbox ein und weise im das Makro zu. Gruß Holger
Folgende(r) 1 Nutzer sagt Danke an echo für diesen Beitrag:1 Nutzer sagt Danke an echo für diesen Beitrag 28 • Oldman
als erstes sehe ich das nicht eine Schaltfläche aus dem Aktivex, sondern aus dem Formular Steuerelement erstellt werden muss. habe inzwischen eine Probe mit einer Tabelle erstellt die benachbarte Spalten tauscht. Hier aber A und B.
Sub tausche_links_rechts() Dim rngA As Variant Dim rngB As Variant rngA = Range("A1:A16") rngB = Range("B1:B16") Range("A1:A16") = rngB Range("B1:B16") = rngA End Sub
Werde eine neue Schaltfläche als Formular Steuerelement erstellen und dieser versuchen zu Sagen was sie machen soll oder ich möchte.
Vielleicht kannst du diese Angaben mal überprüfen.
Oldman
PS: die angefügte Tabelle Energieabrechnung ist zum Probieren und mehrfach gespeichert
ob Du Formular nimmst oder ActiveX ist erst mal für die Makroausführung hier nicht relevant. Du könntest in CommandButton1_Click das Makro zum Tauschen aufrufen oder den Code dort direkt einfügen.
Eventuell tust Du aber nur den Zählerstand kopieren und dann für die neuen EIntragungen die Stände in Spalte I entfernen. Aufgezeichnet sieht das so aus:
Code:
Sub Makro2() ' ' Makro2 Makro '
' Range("I2:I16").Select Selection.Copy Range("J2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("I2:I16").Select Application.CutCopyMode = False Selection.ClearContents End Sub
und etwas eingekürzt dann so:
Code:
Sub Makro2a() Range("I2:I16").Copy Range("J2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("I2:I16").ClearContents End Sub
Wenn Dir nach dieser Aktion die #### in Spalte G nicht gefallen änderst Du die Formeln in Spalte C so: =MAX(I2-J2;0) (Eintragen in C2 und bis C16 runter ziehen)
Die Formel in C24 kannst Du kürzen in =SUMME(C2:C16) wie Du es für die anderen Spalten in Zeile 17 gemacht hast. Analog, nur für kleinere Bereiche, auch in H19 und H20.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Oldman