Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1268to1272
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereich on the fly bearbeiten und zuweisen

Bereich on the fly bearbeiten und zuweisen
Frank
Hallo zusammen,
ich möchte die Werte aus dem linken Bereich (BEREICH1) via VBA in den rechten Bereich (BEREICH2) übertragen.
Das ganze ohne copy / paste, sondern durch direkte Zuordnung. also quasi
Range("BEREICH2") = Range("BEREICH1").value
Das Problem: ich möchte, daß "unterwegs" (und NICHT vor der Übertragung) die Nullen aus Bereich1 in leere Zellen umgewandelt werden. Ist das möglich?
https://www.herber.de/bbs/user/81069.xlsm
Grund: ich nutze so eine Übertragung in einer wesentlich gößeren, komplexeren Datei und versuche die -ziemlich miese- Performance von VBA unter 2007 irgendwie zu verbessern...
Vielen Dank,
Frank

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bereich on the fly bearbeiten und zuweisen
18.07.2012 17:37:52
Josef

Hallo Frank,
eine Möglichkeit.
Sub uebertragen()
  Dim rngSrc As Range, rngTgt As Range
  Dim vntValues As Variant, lngRow As Long, lngCol As Long
  
  On Error Resume Next
  
  Set rngSrc = Application.InputBox("Bitte Quellbereich auswählen:", "Werte übertragen", Selection.Address, Type:=8)
  If Not rngSrc Is Nothing Then
    Set rngTgt = Application.InputBox("Bitte Zielzelle auswählen:", "Werte übertragen", Selection.Address, Type:=8)
    If Not rngTgt Is Nothing Then
      vntValues = rngSrc
      For lngCol = 1 To UBound(vntValues, 2)
        For lngRow = 1 To UBound(vntValues, 1)
          If vntValues(lngRow, lngCol) = 0 Then vntValues(lngRow, lngCol) = ""
        Next
      Next
      rngTgt(1, 1).Resize(UBound(vntValues, 1), UBound(vntValues, 2)) = vntValues
    End If
  End If
  
End Sub



« Gruß Sepp »

Anzeige
AW: Bereich on the fly bearbeiten und zuweisen
19.07.2012 08:52:52
Frank
dankeschön!
AW: Bereich on the fly bearbeiten und zuweisen
18.07.2012 17:49:55
ransi
Hallo
Ich habs grad mal mit 100000 Zellen getestet.
Sauschnell.
Option Explicit

Sub machs()
    Dim arr
    Dim L As Long
    arr = Range("E6:E100000")
    For L = LBound(arr) To UBound(arr)
        If arr(L, 1) = 0 Then arr(L, 1) = ""
    Next
    Range("G6:G100000") = arr
End Sub


die -ziemlich miese- Performance von VBA unter 2007

Zeigst du uns mal deinen Code?
ransi
Anzeige
AW: Bereich on the fly bearbeiten und zuweisen
19.07.2012 08:49:46
Frank
das ist klasse. wenn ich das für 4 verschiedene ranges machen muß: benötige ich dann 4 for-next-schleifen oder kann ich die alle in einer schleife abarbeiten?
wegen des codes: der ist so lang. ich weiß nicht, ob ich den hier posten soll...bist du nicht der meinung, daß makros unter 2007 generell langsamer laufen als unter 2003?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige