Microsoft Excel

Herbers Excel/VBA-Archiv

Kopieren eines variablen Bereichs

Betrifft: Kopieren eines variablen Bereichs von: excel_2000
Geschrieben am: 22.09.2020 18:17:03

Hallo zusammen,


ich bin im Bereich VBA Programmierung noch Anfänger und bräuchte Hilfe bei einem Code. Ich habe einen Bereich mit Formeln und möchte diesen mit festen Werten kopieren/überschreiben. Das Problem ist, dass nur die Zeilen und Spalten genommen werden sollen, die mit einem „x“ gekennzeichnet sind.


Vielleicht hat jemand einen Tipp, wie ich das lösen kann.
Vielen Dank im Voraus!

Betrifft: AW: Kopieren eines variablen Bereichs
von: Daniel
Geschrieben am: 22.09.2020 18:29:23

Hi
dazu sollte man wissen:
- wie kommst das x zustande (Formel oder Festeingabe)
- wo steht das x?
- was steht in den Zellen, in denen ein x stehen könnte, wenn kein x drinsteht?
am besten nennst du die konkreten Zellbereiche mit Adresse, denn sonst ist es schwer eine mögliche Lösung zu beschreiben und schließlich willst du ja eine Lösung, die du mit möglichst wenig Änderungaufwand übernehmen kannst (vermute ich zumindest) und da ist es praktischer, wenn man schreiben kann "A:A" als "Spalte, da wo die "x" stehen könnten"
Gruß Daniel

Betrifft: AW: Kopieren eines variablen Bereichs
von: excel_2000
Geschrieben am: 22.09.2020 19:38:38

Danke für die schnelle Rückmeldung. Das „x“ für die Zeilen steht in Spalte „A“ und das „x“ für die Spalten in Zeile 3. Das „x“ ist als fester Wert eingegeben. Wenn die Formel bleiben soll, steht nichts dort.

Betrifft: AW: Kopieren eines variablen Bereichs
von: Rudi Maintaire
Geschrieben am: 22.09.2020 19:52:11

Hallo,
ungetestet:
Sub FormelnInWerte()
  Dim lZeile As Long, lSpalte As Long
  Application.ScreenUpdating = False
  For lZeile = 4 To Cells(Rows.Count, 1).End(xlUp).Row
    For lSpalte = 2 To Cells(Columns.Count, 3).End(xlToLeft).Column
      If Cells(lZeile, 1) = "x" And Cells(3, lSpalte) = "x" Then
        With Cells(lZeile, lSpalte)
          .Value = .Value
        End With
      End If
    Next lSpalte
  Next lZeile
End Sub

Gruß
Rudi

Betrifft: AW: Kopieren eines variablen Bereichs
von: Daniel
Geschrieben am: 22.09.2020 20:05:17

Hi

vielleicht so:
dim Bereich as Range
dim Zeilen as Range
dim Spalten as Range
Set Zeilen = Columns(1).SpecialCells(xlcelltypeconstants, 2).EntireRow
Set Spalten = Rows(3).SpecialCells(xlcelltypeconstants, 2).EntireColumn

for each Bereich in Intersect(Zeilen, Spalten).Areas
    Bereich.formula = Bereich.value
next
gruß Daniel

Betrifft: AW: Kopieren eines variablen Bereichs
von: excel_2000
Geschrieben am: 22.09.2020 20:36:22

Funktioniert leider beides nicht..

Betrifft: AW: Kopieren eines variablen Bereichs
von: GerdL
Geschrieben am: 22.09.2020 20:49:21

Hallo Nick,

lade bitte eine Beispiel-Datei hoch, in der gekennzeichnet ist, welche Zellen fixe Werte bekommen sollen.

Gruß Gerd

Betrifft: AW: Kopieren eines variablen Bereichs
von: excel_2000
Geschrieben am: 22.09.2020 21:19:31



Bei den Zeilen mit der Summe und der Spalte mit dem Durschnitt sollen die Formeln bleiben. Die restlichen Zellen die auch mit einem "x" markiert sind sollen zu festen Werten werden.

Betrifft: AW: Kopieren eines variablen Bereichs
von: GerdL
Geschrieben am: 22.09.2020 22:07:01

Public Sub Test()
    
    Dim B As Range, X As Range
    
    Set B = Range(Range("B5"), Range("B5").End(xlDown)) 'Zelle mit Produkt1 abwärts ohne leere  _
Zellen!
    Set B = B.ColumnDifferences(Comparison:=B.Find("Summe", LookIn:=xlValues, lookat:=xlWhole))
     
    For Each X In Intersect(B.EntireRow, Range("C:E")).Areas
           X.Cells.Value = X.Cells.Value
    Next
    
    Set B = Nothing

End Sub


Betrifft: Funktioniert nicht...
von: Daniel
Geschrieben am: 22.09.2020 22:58:44

ist als Rückmeldung ungefähr so hilfreich wie "dann machs anders" als Hilfe!

du könntest und mitteilen, was genau nicht funktioniert.
Gibt es eine Fehlermeldung? Wenn ja wie lautet sie (Text, Nummer) und vorallem, in welcher Zeile tritt der Fehler auf?
wenn es keinen Fehler gibt, was macht der Code und was ist unerwünscht daran?

außerdem ist es dann immer hilfreich, die Datei mit den Daten und dem fehlerhaften Code hochzuladen, damit man sich das genauer anschauen kann.

und selbst wenn es auf den ersten Schuss nicht klappt, ein kleines Dankeschön für die aufgewendete Zeit wäre schon nett, dein lieblos dahingeworfenes "funktioniert nicht" ist einfach nur unhöflich und respektlos gegenüber den Menschen, die dir helfen.
Bei Menschen wie dir überlegt man sich, ob man weiterhin kostenfrei Hilfe leistet.

Gruß Daniel

Betrifft: Funktioniert doch
von: Daniel
Geschrieben am: 22.09.2020 23:03:58

ich habe mit einer Datei , die ich exakt nach deinen Angaben aufgebaut habe, getestet, mein Code funktioniert einwandfrei.
Wie kommst du zu deine Aussage "funktioniert nicht"?

Beiträge aus dem Excel-Forum zum Thema "Kopieren eines variablen Bereichs"