Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
544to548
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
544to548
544to548
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA-easy?

VBA-easy?
14.01.2005 23:33:13
Andreas
Hallo Excelfreunde,
hier eine kleine Frage mit Pfiff?
Wenn ich Daten Automatisiert in Blatt("Q")in eine Spalte ("A") schreiben lasse und es kommt dann eine Zelle gefüllt mit Zahlen, wie muss der Code Aussehen damit 3 Spalten weiter ganz oben mit dem Automatischen einfügen weitergemacht wird.(Alle Zellen in "A" sind leer, auch 3 Spalten weiter "D") .
Danke.
Andreas

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

Betreff
Datum
Anwender
Anzeige
AW: VBA-easy?
14.01.2005 23:47:14
Josef
Hallo Andreas!
Wenn du die daten in die erste leere Zeile einfügst,
dann hast du doch bestimmt eine Zeilen-Variable!
Dann brauchst du noch eine Spalten-Variable und wenn die Zeile 65536 erreicht ist,
stellst du die Zeilenvariable auf 1 zurück und zählst die Spaltenvariable um 3 rauf!
Gruß Sepp
AW: VBA-easy?
15.01.2005 00:12:54
Andreas
Danke Sepp für deine Antwort,
Oh du kannst Fragen stellen!:-)
Bisher habe ich nur das:
Sheets("quittung").Select
Range("A1").Select 'bereich a1 aussuchen
Selection.Copy 'den ausgesuchten bereich copy

Sheets("USST_1_4_Jahr").Select 'blatt suchen
Range("A1").Select 'bereich a1 aussuchen

While ActiveCell.Value "" 'die gerade aktivierte zelle überprüfen ob sie leer ist
ActiveCell.Offset(1, 0).Select 'wenn sie leer ist wert einschreiben, wenn sie nicht leer ist eine zelle nach unten springen
Wend 'schleifenende
Gruss Andreas
Anzeige
AW: VBA-easy?
15.01.2005 00:28:21
Josef
Hallo Andreas!
Sollte funzen!

Sub kopieren()
Dim wksQ As Worksheet   'Quelltabelle
Dim wksZ As Worksheet   'Zieltabelle
Dim lRow As Long
Dim iCol As Integer
Set wksQ = Sheets("quittung")
Set wksZ = Sheets("USST_1_4_Jahr")
iCol = 1
With wksZ
Do
lRow = .Cells(65536, iCol).End(xlUp).Row
If lRow >= 65500 Then 'ab welcher Zeile der Spaltenwechsel erfolgen soll!
iCol = iCol + 3
End If
Loop While lRow >= 65500
wksQ.Range("A1").Copy .Cells(lRow + 1, iCol)
End With
End Sub

Gruß Sepp
AW: VBA-easy?
15.01.2005 01:45:34
Andreas
Dankeeeeeeeeeeeeeeeeee Sepp,
eine Tiefe verbeugung.
Danke für die noch so Späte beantwortung.
Wenn du morgen :-)etwas zeit hast, könntest du dies bitte etwas auskomentieren damit ich noch was dazu lerne?
Funktioniert dein Code so lange, bis mein Blatt voll ist d.h. bis keine freien Spalten mehr zur verfügung stehen?
Trotzdem noch mal danke.
Ich bin ganz aus dem Häuschen :-)))))))))))))))
Dir noch ein schönes Wochenende!
Andreas
Anzeige
mit Kommentaren.
15.01.2005 09:01:02
Josef
Hallo Andreas!
Bitte sehr!
Wenn das Blatt voll ist, wird eine Meldung ausgegeben!


      
Option Explicit
Sub kopieren_bis_Blattende()
Dim wksQ As Worksheet   'Quelltabelle
Dim wksZ As Worksheet   'Zieltabelle
Dim lRow As Long        'Zeilenvariable
Dim iCol As Integer     'Spaltenvariable
   
Set wksQ = Sheets("quittung")       'Tabelle von der kopiert wird
Set wksZ = Sheets("USST_1_4_Jahr")  'Tabelle in der eingefügt wird

iCol = 1                            
'Spaltenvariable mit 1 füllen

   
With wksZ
      
Do                            'Start der Schleife
      
      lRow = .Cells(65536, iCol).End(xlUp).Row
      
'letzte gefüllte Zeile in der Spalte "iCol" finden
      
         
If lRow >= 65500 Then            'Wenn Zeile >= 65500 dann
            iCol = iCol + 3               'Spalte um 3 erhöhen
            
               
If iCol > 256 Then            'Wenn Spalte > 256 dann
                  MsgBox "Blatt ist voll!"   'Meldung
                  Exit Sub                   'Makro verlassen
               End If
            
         
End If
         
      
Loop While lRow >= 65500
      
'Wendepunkt der Schleife! So lange in Schleife bleiben bis Zeile < 65500
      
      wksQ.Range(
"A1").Copy .Cells(lRow + 1, iCol)
      
'"A1" aus wksQ kopieren und in wksZ in Zelle(Zeile+1, Spalte) einfügen
      
   
End With
End Sub 


Gruß Sepp
Anzeige
AW: mit Kommentaren.
15.01.2005 12:03:18
Andreas
Hallo Sepp,
meine Nase kommt bei der Verbeugung am Fußboden an.
Danke noch mal das du dir die Mühe gemacht hast den Code zu kommentieren(incl. Meldung Blatt voll).
Sehr nett.
Dir noch alles Gute.
Bis dann.
Andeas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige