Thema Datum  Von Nutzer Rating
Antwort
25.01.2021 16:27:18 Maximilian
NotSolved
25.01.2021 16:42:19 ralf_b
NotSolved
Rot VBA Automatisierung/ Verbesserung
26.01.2021 03:37:42 Gast24588
NotSolved
26.01.2021 03:58:16 Gast16065
NotSolved

Ansicht des Beitrags:
Von:
Gast24588
Datum:
26.01.2021 03:37:42
Views:
495
Rating: Antwort:
  Ja
Thema:
VBA Automatisierung/ Verbesserung

 Uff. Deine Beschreibung ist verwirrend geschrieben.

ich würde gerne einen bestehenden Code ausbauen. Der bisherige kopiert den Wert aus Spalte A1 in die Spalte 20 und fügt darüber eine neue Spalte ein. 

Spalten (Columns) sind in Excel - in der A1-Schreibweise - in Buchstaben angegeben - z.B. Spalte A, Spalte AA, Spalte EFA, usw.

Zeilen (Rows) sind in Excel - in der A1-Schreibweise - als Ganze Zahlen angegeben (beginned bei 1) - z.B. 1, 5, 100, usw.

Zellen (Cells) sind in Excel - in der A1-Schreibweise - als eine Kombination aus Spalte und Zeile angegeben - z.B: A1, AA5, EFA100, usw.

Ein Bereich (Range) in Excel - in der A1-Schreibweise - ist eine Angabe aus zwei Zellen - z.B. A1:C3 (das sind die Zellen A1, A2, A3; B1, B2, B3; C1, C2, C3)

Man kann sich auch auf ganze Spalte beziehen - z.B. Spalte A bis C wäre als Bereich A:C (analog dazu Zeilen; z.B. Zeile 1 bis 3 wäre 1:3 )


Es ist nun üblich, sich nicht auf eine gesamte Spalte zu beziehen (weil das verdammt viele Zellen sind, ca. über eine Millionen Zellen je Spalte). Darum beschränkt man sich auf die Zellen die auch einen Inhalt haben, und diesen Bereich ermittelt man z.B. so:

Option Explicit

Sub test()
  
  Dim Bereich As Range
  
  With Worksheets("Tabelle1")
    'in Spalte A, such von unten-nach-oben nach erster Zelle mit Inhalt
    '  A2 und die gefundene Zelle bilden den Bereich
    Set Bereich = .Range("A2", .Cells(.Rows.Count, "A").End(xlUp))
    'wenn z.B. keine Daten in der Spalte A stehen,
    ' kann es passieren, das wir oberhalb von A2 landen
    If Bereich.Row < 2 Then
    '... landen wir über A2 (Zeilen-Index ist kleiner 2)
    ' dann verlassen wir hier die Prozedur (=Sub)
      Exit Sub
    End If
  End With
  
  Dim Zelle As Range
  
  For Each Zelle In Bereich.Cells
    'als Beispiel, geben wir hier
    ' die Adresse jeder Zelle im Bereich
    ' im Direktfenster (gf. einblenden mit STRG+G) aus
    ' und dessen Wert / Inhalt
    Debug.Print Zelle.Address, Zelle.Value
  Next
  
End Sub

Nun schau dir bitte noch mal an was bei dir im Makro genau macht wird.

Mit den obigen Erklärungen, solltest du in der Lage sein dein Makro aufzubarbeiten / korrigieren zu können.

 

BG


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
25.01.2021 16:27:18 Maximilian
NotSolved
25.01.2021 16:42:19 ralf_b
NotSolved
Rot VBA Automatisierung/ Verbesserung
26.01.2021 03:37:42 Gast24588
NotSolved
26.01.2021 03:58:16 Gast16065
NotSolved