Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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

Zellen zufällig kopieren

Zellen zufällig kopieren
15.07.2020 17:47:47
Sepp
Hallo zusammen,
gerne würde ich nochmals mangels eigener Kenntnisse hier um Hilfe bitten.
Durch die Unterstützung von Usern dieser Seite habe ich aktuell folgendes in Verwendung:
Durch Betätigen einer Schaltfläche werden Daten, die sich aus Berechnungen in anderen Tabellen und Blättern ergeben, in die erste freie Zeile meiner Tabelle kopiert.
Nun hat die Praxis gezeigt, dass in einigen Fällen einzelne Zellen einer gerade kopierten Zeile mit anderen Daten überschrieben werden müssen.
Dies würde ich gerne mit einer zweite Schaltfläche realisieren und würde einen entsprechenden Code dafür benötigen.
Folgendes ist dabei die Aufgabenstellung:
- Die zu überschreibenden Zellen sind immer die gleichen, nämlich Spalte F, J und N der gerade gefüllten Zeile (die zu diesem Zeitpunkt noch aktiv ist).
- Die Daten, die in diese Zellen kopiert werden sollen, stehen immer in den selben Zellen, nämlich G2, H2 und I2. (Die Daten selbst ändern sich und können in einigen Fällen auch eine leere Zelle darstellen, die dann aber ebenfalls kopiert werden soll.)
- Die Verteilung soll zufällig erfolgen, ohne doppelte.
Ich würde (so denke ich zumindest) einen Code hinbekommen, der mittels offset, range, copy und paste den Inhalt der Quellen auf die Ziele kopiert, jedoch nur nach fixen Vorgaben.
Könnte hier jemand einen Code zaubern, der per Zufall den Inhalt der drei Quellzellen auf die drei Zielzellen verteilt, ohne doppelte zu erhalten?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen zufällig kopieren
15.07.2020 23:06:54
fcs
Hallo Sepp,
versuche mal hiermit dein Glück.
Sub prcCopy_G2_H2_I2()
Dim Zeile As Long
Dim wks As Worksheet
Dim arrReihenfolge(), intZufall As Integer
Dim intRFa As Integer, intRFb As Integer, intRFmax As Integer
Dim arrZellen() As String, arrSpalten() As Long
Dim bolDoppelt As Boolean
intRFmax = 3 'Anzahl zufällig zu wählenden Zellen
'Quellzellen
ReDim arrZellen(1 To intRFmax)
arrZellen(1) = "G2"
arrZellen(2) = "H2"
arrZellen(3) = "I2"
'Ziel-Spalten
ReDim arrSpalten(1 To intRFmax)
arrSpalten(1) = 6   'F
arrSpalten(2) = 10  'J
arrSpalten(3) = 14  'N
'zufällige Reihenfolge ermitteln
ReDim arrReihenfolge(1 To intRFmax)
arrReihenfolge(1) = Int((3 - 1 + 1) * Rnd() + 1)
For intRFa = 2 To intRFmax
Do
intZufall = Int((3 - 1 + 1) * Rnd() + 1)
bolDoppelt = False
For intRFb = 1 To intRFa - 1
If arrReihenfolge(intRFb) = intZufall Then
bolDoppelt = True
Exit For
End If
Next
Loop Until bolDoppelt = False
arrReihenfolge(intRFa) = intZufall
Next
Set wks = ActiveSheet
Zeile = ActiveCell.Row
If Zeile > 2 Then
With wks
For intRFa = 1 To intRFmax
.Range(arrZellen(arrReihenfolge(intRFa))).Copy _
.Cells(Zeile, arrSpalten(intRFa))
Next
End With
Else
MsgBox "Einträge werden nur unterhalb von Zeile 2 gemacht!"
End If
End Sub
LG
Franz
Anzeige
AW: Zellen zufällig kopieren
16.07.2020 10:14:24
Sepp
Erstmal danke!
Beim Probieren krieg ich erstmal einen Syntaxfehler beim Kompilieren. Folgende Zeilen markiert er mir.
.Range(arrZellen(arrReihenfolge(intRFa))).Copy _
.Cells(Zeile, arrSpalten(intRFa))
leider fehlt es auch hier an Kenntnissen, den Fehler vielleicht selbst zu finden...
AW: Zellen zufällig kopieren
16.07.2020 12:21:28
fcs
Hallo Sepp,
aus irgendeinem Grund mag Excel die Zeilentrennung mit " _" nach Copy nicht nicht.
Passe die zeile wie folgt an:
                .Range(arrZellen(arrReihenfolge(intRFa))).Copy .Cells(Zeile, _
arrSpalten(intRFa))
LG
Franz
Anzeige
AW: Zellen zufällig kopieren
16.07.2020 14:23:45
Sepp
Funktioniert bisher super! Allerherzlichsten Dank!!
AW: Zellen zufällig kopieren
17.07.2020 21:23:55
Sepp
Funktioniert wie gewünscht! Jedoch hat die Praxis gezeigt, dass eine kleine Anpassung super wäre:
Und zwar für denn Fall, dass eine oder mehrere Quellzellen leer sind.
Konkret sollte folgendes passieren: Wenn die gerade eingefügte Zelle keinen Inhalt hatte, soll der Inhalt der Zelle links daneben ebenfalls gelöscht werden.
Wäre der Aufwand hier gering genug, dass ich um diese Anpassung bitten dürfte? :)
AW: Zellen zufällig kopieren
18.07.2020 10:43:48
Sepp
Vermutlich nicht sonderlich elegant, aber ich habs erstaunlicherweise selbst hinbekommen. :P
If IsEmpty(Range("F" & ActiveCell.Row)) Then
Range("E" & ActiveCell.Row).ClearContents
End If
If IsEmpty(Range("J" & ActiveCell.Row)) Then
Range("I" & ActiveCell.Row).ClearContents
End If
If IsEmpty(Range("N" & ActiveCell.Row)) Then
Range("M" & ActiveCell.Row).ClearContents
End If

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige