Excel Matrix in andere Matrix kopieren

  • Ersteller Ersteller HeyHey
  • Erstellt am Erstellt am
H

HeyHey

Gast
Hi Leute

ich möchte eine Matrix mit einer Spalte und 2 Zeilen in eine Matrix mit einer Spalte und 2 Zeilen kopieren. Jeder Wert darf ausgetauscht werden.

Wie stell ich sowas am Besten an?

Ich hab blöderweiße auch kaum Erfahrung mit VBA, ist VBA die einzige Möglichkeit sowas zu realisieren?

lg HeyHey
 
Sollen der Zellenbereich (=Range) von einem Blatt auf ein anderes kopiert werden, oder soll die Range auf das gleiche Blatt kopiert werden?

Zweiteres z.B. so:
Code:
Range("A1:D2").copy
Range("A10:D11").PasteSpecial xlPasteValues
 
wow das ging ja fix, danke :-)

die Sachen stehen auf einem anderen Blatt:

Das Blatt auf dems angezeigt werden soll heißt Display und das mit den Daten heißt Daten


das kann ich aber ohne Probleme ändern und auf einem Blatt arbeiten
 
Zuletzt bearbeitet:
Code:
Worksheets("Daten").Range("A1:D2").copy
Worksheets("Display").Range("A10:D11").PasteSpecial xlPasteValues

sollte es tun. Wichtig ist, dass das vba-Programm nen Abgang macht, falls das Blatt nicht vorhanden ist.

EDIT: Diese Antwort war noch fixer! ;)
 
Zuletzt bearbeitet von einem Moderator:
Wenn du nicht weist wie etwas in VBA funktioniert, du es aber von Hand hinbekommst, dann kann ich dir den eingebauten Makrorekorder empfehlen.

1) Makro aufzeichen
2) Aktion(en) ausführen
3) Aufzeichung beenden

und schon hast du den VBA-Code
 
geniales Tool, super geiler Tipp

wisst ihr, wie man die vom Tool erstellten Makros wieder anhalten kann?

ich versuch es die ganze Zeit mit Application.Stop, funtzt aber net
 
Wie meinst du das mit dem Stoppen? Willst du die Makroaufzeichnung stoppen oder das Makro selbst? Das Makro ist ja nur ne normale VBA-Funktion, die läuft nur solange bis sie fertig ist.
 
Wenn du den Rekorder startest, dann müsste sich da eine weitere Leiste an deine Oberfläche anhängen, falls du Office2003 benutzt zumindest. Da auf das Stopsymbol klicken. Bei Office 2007 müsste ich erst schauen.
 
mein makro hat immer die ganze Zeit noch ein anderes aufgerufen, deshalb hatte ich nen überlauf.

Was ist eigentlich die beste Möglichkeit eine Zelle mit einem Dropdown Menü mit dem Code von vorhin zu kombinieren?

eine If-Abfrage?

Er soll halt bei unterschiedlichen Werten in der Zelle unterschiedliche Felder kopieren

lg HeyHey
 
If nur wenn es zwei Möglichkeiten gibt, sonst case. Sieht ungefähr so aus:

Code:
Private Sub ComboBox1_Change() 

   Select Case ComboBox1.ListIndex 
   
     Case 0

//hier Code einfügen       

     Case 1

//hier Code einfügen       

     Case 2 

//hier Code einfügen       

     Case Else 
     
   End Select 
   
 End Sub

Wenn es so nicht geht lies mal in der Hilfe, hab grad kein Excel zur Hand
 
ich bin mal wieder am Verzweifeln.

Ich muss eine Zelle finden und die Position der Zelle irgendwo speichern

Ich hab schon ein Makro gefunden das mir einen Inhalt sucht, wie kann ich die Zellenposition auslesen?

Code:
Sub Ersetzen()
Dim Suchtext, Ersatztext
Dim Bereich As Range
Dim Suche As Range
Dim i As Long

Suchtext = "a"
Ersatztext = "b"

Set Bereich = Range("A1:L1") 'zu suchenden Bereich festlegen

Set Suche = Bereich.Find(what:=Suchtext, LookIn:=xlFormulas, LookAt:=xlPart)

If Suche Is Nothing Then
MsgBox "Keine übereinstimmende Daten gefunden!"
Else
Application.ScreenUpdating = False

Do
i = i + 1
Suche.Value = Replace(Suche.Value, Suchtext, Ersatztext)
Set Suche = Bereich.FindNext(Suche)
Loop Until Suche Is Nothing

MsgBox "Es wurden " & i & " Ersetzungen durchgeführt!"

End If
End Sub
 
Ich hätte das so gemacht:
Code:
Sub ersetzen()

Dim rZelle As Range
Dim rBereich As Range
Dim sSuchtext As String
Dim sErsatztext As String
Dim i As Integer

sSuchtext = "a"
sErsatztext = "b"
i = 0

Set rBereich = Range("A1:L1")

For Each rZelle In rBereich.Cells
  If InStr(rZelle, sSuchtext) Then
    rZelle = Replace(rZelle, sSuchtext, sErsatztext)
    MsgBox rZelle.Address 'liefert die Adresse der Zelle
    i = i + 1
  End If
Next rZelle

If i > 0 Then
  MsgBox "Es wurden " & i & " Ersetzungen durchgeführt!"
Else
  MsgBox "Keine übereinstimmende Daten gefunden!"
End If

End Sub
 
Zuletzt bearbeitet:
Zurück
Oben