zwei Spalten tauschen Excel Tabelle
#1
Sehr geehrte Damen und Herren,

 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.


Füge die Tabelle an.


Angehängte Dateien Thumbnail(s)
   
Top
#2
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:
  • Oldman
Top
#3
Danke für die Antworten,

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
Top
#4
Hallöchen,

hier haben wir auch was zum Excel-Word-Makrorekorder

Zitat:PS: die angefügte Tabelle Energieabrechnung ist zum Probieren und mehrfach gespeichert

Wo ist die denn?
.      \\\|///      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:
  • Oldman
Top
#5
Hallo und Danke fürs Antworten,

die Datei ist im ersten Post als angehängte Date als Erklärung.

Habe sie nochmals angefügt.
   
Vielleicht kannst du weiterhelfen.
Top
#6
Bitte kein Bild, sondern eine Datei hochladen!
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
[-] Folgende(r) 1 Nutzer sagt Danke an Glausius für diesen Beitrag:
  • Oldman
Top
#7
Hallo, danke für den Tipp.

werde mich erstmal damit befassen.    

Hallo und vielen Dank, hier die Datei.

Vielleicht gibt es nun einen Ansatzpunkt weiter zu kommen.

Würde mich sehr freuen


Angehängte Dateien
.xlsm   Garagen Elektro Datei zum Versenden.xlsm (Größe: 26,62 KB / Downloads: 5)
Top
#8
Hallöchen,

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:
  • Oldman
Top
#9
Allerbesten Dank,

ich werde das in aller Ruhe versuchen und mich wieder melden.
 
Oldman
Top
#10
Hallo, alles Bestens.

tauschen klappt prima. Das ändern der Anzeigen werde ich auch übernehmen.

Viele Grüsse von Oldman
Top


Gehe zu:


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