Werte per click Übertragen VBA
#1
Guten Tag liebe Leute [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Ich versuchs nun mittlerweile schon seid 2 Stunden Jedoch scheints net so zu wollen wie ich.[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Das Problem;
Das Problem ist einfach,ich wuerde gerne zwei Spalten kopieren E8-E13 und F8-F13 beide beeinhalten formeln die eine loesung anzeigen und diese zwei werte wuerde ich gerne auf ein anderes Register kopieren sobald ich einen Button druecke,sobald dann andere Ergebnisse wieder da stehen,wuerde ich gern nochmal auf denn Knopf druecken und diese abspeichern diesmal sollen die ergebnisse eine Spalte weiter gespeichert werden.

Hier sind jeweils Beispiel Bilder um es zu veranschaulichen 

[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]


Trauriger Eigenversuch in Vba
[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Vorwissen ist nicht wirklich vorhanden in vba wie man sicher sieht. 

Fuer schnelle hilfe wär ich wirklich sehr dankbar![img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]


Crosslink: Ich bin ein Crosslink klick mich
Antworten Top
#2
Hola,

verlinkst du bitte deine Fragen in den verschiedenen Foren untereinander?
Danke.

Gruß,
steve1da
Antworten Top
#3
Passt so hoffe ich  :)
Antworten Top
#4
Hallo, V...,

in der Anlage ein erstes Beispiel.

Da ich ungern mit festen Adressen im Programm arbeite benötigt das Makro zwei benannte Zellen.Diese können beliebig in der Datei verschoben werden ohne das Programm ändern zu müssen.

A) benannte Zelle "Eingabe"
die Werte der Zellen bis zur nächsten Leerzeile/-spalte ("CurrentRegion") werden kopiert
B) benannte Zelle "Ausgabe"
Ab der ersten freien Spalte hinter der "Ausgabe" werden die Werte untereinander mit einer Leerzelle hinter jeder Eingabespalte geschrieben.


Code:
Private Sub cbTuwat_Click()
Dim lngEinZeile As Long
Dim lngOffZeile As Long
Dim lngEinSpalte As Long
Dim lngOffSpalte As Long
Dim varEingabe() As Variant
Dim rngEingabe As Range
Dim rngAusgabe As Range
Dim rngAusgabeCurrent As Range

Set rngEingabe = ThisWorkbook.Names("Eingabe").RefersToRange
Set rngAusgabe = ThisWorkbook.Names("Ausgabe").RefersToRange

varEingabe = rngEingabe.CurrentRegion.Value
Set rngAusgabeCurrent = rngAusgabe.CurrentRegion
lngOffSpalte = rngAusgabeCurrent.Columns.Count

For lngEinSpalte = 1 To UBound(varEingabe, 2)
    lngOffZeile = (lngEinSpalte - 1) * (UBound(varEingabe, 1) + 1) - 1
    For lngEinZeile = 1 To UBound(varEingabe, 1)
        rngAusgabe.Offset(lngOffZeile + lngEinZeile, lngOffSpalte) = varEingabe(lngEinZeile, lngEinSpalte)
    Next lngEinZeile
Next lngEinSpalte
End Sub


Angehängte Dateien
.xlsm   Bereicheunteeinanderkopieren.xlsm (Größe: 21,51 KB / Downloads: 0)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#5
Hier einfach mit dem Makrorekorder aufgezeichnet!
Antworten Top


Gehe zu:


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