Thema Datum  Von Nutzer Rating
Antwort
11.03.2024 16:56:39 Fränki
NotSolved
11.03.2024 19:01:35 Gast01
Solved
Rot Makro für kopieren und einfügen verstehe ich nicht
11.03.2024 19:26:29 Gast52157
Solved
11.03.2024 19:32:42 Gast50510
NotSolved
11.03.2024 19:28:32 Fränki
NotSolved

Ansicht des Beitrags:
Von:
Gast52157
Datum:
11.03.2024 19:26:29
Views:
55
Rating: Antwort:
 Nein
Thema:
Makro für kopieren und einfügen verstehe ich nicht

In diesem Forum wurde ich böse angegangen da ich mich mit Excel und VBA nicht so gut auskenne und einige Fehler in mein Excel eingebaut habe, und halt mit dem Makrorekorder etwas zu erreichen.

... oder du bist einfach empfindlich. ?? Denn so ganz ergibt das was du schreibst keinen Sinn.

Wenn du hier wirklich "böse angegangen" wurdest, warum versuchst du es erneut? Warum nicht in einem anderen Foren, in dem das nicht passiert ist? Jedenfalls impliziert deine Behauptung genau das.

Jedenfalls: Foren sind nicht dafür gedacht sich Grundlagen erklären zu lassen. Dafür gibt es Tutorials - schriftlich, oder heutzutage sogar als Video - und Fachliteratur. Wenn dich also jemand angefahren hat, weil du einfach zu faul bist dir Grundlagen anzueigenen, dann würde ocj mich demjenigen sogar gerne anschließen.

Tipp: Wenn du im Internet unterwegs bist, dann leg dir ein dickeres Fell zu.


Jetzt zum eigentlichen Thema:

Set B_Kopf = Sheets("Aufträge").Range("b4")

Hier wird die Zelle B4 referenziert; unter dem Variablenamen B_Kopf und die ist dabei vom Datentyp Range.

Für dein geschildertes Wunschverhalten braucht man aber erstmal gar keine Variable. Es wäre ganz trivial so möglich:

Worksheets("Aufträge").Range("B4").Value = Worksheets("Eingabe").Range("E8").Value
Worksheets("Aufträge").Range("C4").Value = Worksheets("Eingabe").Range("E10").Value
Worksheets("Aufträge").Range("D4").Value = Worksheets("Eingabe").Range("E12").Value
Worksheets("Aufträge").Range("G4").Value = Worksheets("Eingabe").Range("E14").Value

Hinweis: Tabellenblatt (engl. Worksheet) und Blatt/Seite (engl. Sheet) steht für Tabellenblatt ODER Diagramblatt. => Daher, wenn man ein Tabellenblatt meint, nimmt man die Worksheets-Auflistung.

Nun sieht das in der jetzigen Form aber irgendwie nicht so schön aus, es ist auch ein wenig redundant (die Namen der Tabellenblätter kommen mehrfach vor). Also führen wir Variablen ein:

Dim wksEingabe As Excel.Worksheet
Dim wksAuftraege As Excel.Worksheet

Set wksEingabe = Worksheets("Eingabe")
Set wksAuftraege = Worksheets("Aufträge")

wksAuftraege.Range("B4").Value = wksEingabe.Range("E8").Value
wksAuftraege.Range("C4").Value = wksEingabe.Range("E10").Value
wksAuftraege.Range("D4").Value = wksEingabe.Range("E12").Value
wksAuftraege.Range("G4").Value = wksEingabe.Range("E14").Value

Wenn das ganze jetzt noch automatisch untereinander geschrieben werden soll, also nicht immer bei B4 beginnend, dann so:

Dim wksEingabe As Excel.Worksheet
Dim wksAuftraege As Excel.Worksheet

Set wksEingabe = Worksheets("Eingabe")
Set wksAuftraege = Worksheets("Aufträge")

Dim rngLeereZelle As Excel.Range

Set rngLeereZelle = wksAuftraege.Cells(wksAuftraege.Rows.Count, "B").End(xlUp).Offset(1)
If rngLeereZelle.Row < 4 Then
  Set rngLeereZelle = wksAuftraege.Range("B4")
End If

wksAuftraege.Cells(rngLeereZelle.Row, "B").Value = wksEingabe.Range("E8").Value  ' B4, B5, ... = E8
wksAuftraege.Cells(rngLeereZelle.Row, "C").Value = wksEingabe.Range("E10").Value ' C4, C5, ... = E10
wksAuftraege.Cells(rngLeereZelle.Row, "D").Value = wksEingabe.Range("E12").Value ' D4, D5, ... = E12
wksAuftraege.Cells(rngLeereZelle.Row, "G").Value = wksEingabe.Range("E14").Value ' G4, G5, ... = E14

 

Grüße

PS: Der Code ist freihand getippt. Tippfehler, und daraus folgende Kompilierungsfehler, sind daher möglich.

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
11.03.2024 16:56:39 Fränki
NotSolved
11.03.2024 19:01:35 Gast01
Solved
Rot Makro für kopieren und einfügen verstehe ich nicht
11.03.2024 19:26:29 Gast52157
Solved
11.03.2024 19:32:42 Gast50510
NotSolved
11.03.2024 19:28:32 Fränki
NotSolved