Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1196to1200
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

Hilfe bei Codeanpassung!

Hilfe bei Codeanpassung!
Thomas
Hallo Excelfreunde,
ich habe im Archiv diesen Code gefunen der Zeilen aus einer Tabelle in eine andere verschiebt.
Nun funktioniert er nur bei 2 Tabs in der Mappe aber ich habe 3 und ich denke das es daran liegt.
Könnte mir jemand bitte helfen das der Code funzt? Danke.
Private Sub CommandButton2_Click()
Dim rngC As Range, rngA As Range
'aus Tabelle ("Übersicht") sollen die Zeilen raus ins Archiv
For Each rngC In Range("G4", Cells(Rows.Count, 12).End(xlUp))
If rngC.Row > 1 And UCase(rngC.Value) = "Abgesagt" Then
If rngA Is Nothing Then Set rngA = rngC Else Set rngA = Union(rngA, rngC)
End If
Next rngC
If Not rngA Is Nothing Then
With Worksheets("Archiv")            ' Zieltabelle
rngA.EntireRow.Copy .Cells(.Rows.Count, 12).End(xlUp).Offset(1, -11)
rngA.EntireRow.Delete
End With
End If
End Sub
~
Mit freundlichen Grüßen
Thomas
So, so! Das hat damit nichts zu tun, wohl...
27.01.2011 20:10:51
Luc:-?
…aber, wo dein Code steht, Thomas,
denn der ist für ein Steuerelement bestimmt, das CommandButton2 heißt. Außerdem steht nicht da, dass aus Übersicht ausgeschnitten wdn soll. Also wird das aktive Blatt genommen und das ist das, auf dem der Button sitzt, falls er sich nicht auf einer UForm befindet → dann sollte das Blatt schon angegeben wdn — wie siehst du im Code am Bsp des Zielblattes ⇒ zumindest Worksheets("Übersicht").Range("G4", Cells(Rows.Count, 12).End(xlUp)) !

Gruß Luc :-?
AW: So, so! Das hat damit nichts zu tun, wohl...
28.01.2011 17:26:27
Thomas
Hallo Luc,
erstmal Danke. Ich habe im Tab (Übersicht) den Steuerelement-Butten da er bei der Mappe aus dem Archiv auch auf dem ativen Blatt ist. Habe nur im unteren Teil des Code die Zieltabelle eingegeben also (Archiv) aber nichts tut sich. Tabelle Übersicht und Archiv sind gleich auch die Anfangszeile. In Zeile 3 ist der Spaltenkopf (12 Spalten). Achja in welcher Spalte gesucht werden soll hab ich auch noch angepasst (G4).
Habe dein Zusatz mit in die Zieltabelle eingetragen aber es passiert auch nichts.
Wenn es Dir hilft schau mal unter meinem anderen Beitrag rein vom 2011-01-23 17:19:19 da kam nur nichts bei raus bei diesem Problem aber da ist die Mappe.
MfG Thomas
Anzeige
AW: So, so! Das hat damit nichts zu tun, wohl...
30.01.2011 11:11:37
Tino
Hallo,
hier steckt ja schon mal ein Wurm drin.
UCase(rngC.Value) = "Abgesagt"
kann niemals True ergeben.
Müsste wohl eher so aussehen.
UCase(rngC.Value) = "ABGESAGT"
oder
LCase(rngC.Value) = "abgesagt"
Dann fängst Du oben ab der Zeile 4 an
Range("G4", Cells(Rows.Count, 12).End(xlUp))
In der Schleife fragst Du ob die Zeile größer 1 ist, ist irgendwie unlogisch,
die Abfrage müsste wohl größer 3 lauten!?
Gruß Tino
AW: Übersicht verloren gegangen ...
30.01.2011 11:18:30
Gerd
Hallo Thomas, der war etwas daneben, weil unvollständig referenziert!
....... finde ich klasse, wenn andere schreiben "Such dir meinen Link, Luc" :-)
Private Sub CommandButton2_Click()
Dim rngC As Range, rngA As Range
'aus Tabelle ("Übersicht") sollen die Zeilen raus ins Archiv
With Worksheets("Übersicht")
For Each rngC In .Range(.Cells(4, 7), .Cells(.Rows.Count, 12).End(xlUp))
If rngC.Row > 1 And UCase(rngC.Value) = "Abgesagt" Then
If rngA Is Nothing Then Set rngA = rngC Else Set rngA = Union(rngA, rngC)
End If
Next rngC
End With
If Not rngA Is Nothing Then
With Worksheets("Archiv")            ' Zieltabelle
rngA.EntireRow.Copy .Cells(.Rows.Count, 12).End(xlUp).Offset(1, -11)
rngA.EntireRow.Delete
End With
End If
End Sub
Gruß Gerd
Anzeige
AW: Übersicht verloren gegangen ...
30.01.2011 12:43:27
Thomas
Mahlzeit an Euch,
ich bin noch nicht sehr lange an VBA dran das ich das alles verstehe. Im Archiv suche ich mir was passendes raus und stelle es um und Teste es bist ich bei Euch Hilfe hole und nun beim 3. Anlauf.
Bin in der Zwischenzeit auch schon weiter gekommen mit einem anderen Code der mir aber zuviel in mein Archiv verschiebt.
Nun versuche ich noch schnell dein Code Gerd aber es sollen noch mehr Zeilen verschoben werden. Einfacher gesagt wenn in Spalte G ein "ja" und in H Zelle leer ist und in G Zelle leer und H ein "ja" steht darf bleiben und der rest ins Archiv. In Spalte G kann stehen "";"ja";(ab hier ins Archiv damit)"Ist nichts";"hat Abgesagt";"nicht das Richtige";"zu groß";"zu teuer";"Lage".
Nun versuch ich Dein Code Gerd und Danke.
MfG Thomas
Anzeige
AW: Übersicht verloren gegangen ...
30.01.2011 14:02:31
Thomas
Hallo zusammen,
ich habe Deinen Code getestet aber er funzt nicht und es kommt kein Fehler.
Hab einen anderen Code fertig und er funzt wunderbar und Ihr werdet die Hände übern Kopf zusammen schlagen aber bei mir Zählt das Ergebnis.
~Option Explicit
Private Sub CommandButton1_Click()
Dim i As Integer
Application.ScreenUpdating = False
With Sheets("Übersicht")
For i = .Cells(Rows.Count, 1).End(xlUp).Row To 4 Step -1
If .Cells(i, 7) > 0 And .Cells(i, 8) = "" Then
.Rows(i).Copy Sheets("Archiv").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
.Rows(i).Delete
End If
Next
End With
Application.ScreenUpdating = True
End Sub
~
Wenn mir nun jemand bei meinem Anfangsproblem weiter Helfen könnte das meine UF auf Tab 1 aufgeht und nicht im Tab 2 hier der Code.
Code Tab1
~

Private Sub CmdEingabe_Click()
Eingabe.Show
End Sub

Sub openpage()
UserForm.MultiPage1.Value = 0
UserForm.Show
End Sub ~
Im Tab2
~

Private Sub UserForm_Initialize()
Dim Zelle As Range
Set wksData = Worksheets("Übersicht")
wksData.Activate 'diese Zeile bewirkt das die UF2 im anderen Tab geöffnet wird
Me.cmb_VN_Nachname.ListIndex = -1
For Each Zelle In wksData.Range("Uhr").Cells
With Me.cmb_Uhrzeit
.AddItem Zelle.Text
End With
Next
For Each Zelle In wksData.Range("Uhr").Cells
With Me.cmbUhrzeit
.AddItem Zelle.Text
End With
Next
'ComboBox1 wird über VBA mit Inhalt gefüllt
End Sub
~
Danke Gruß Thomas
Anzeige
Das Initialize-Ereignis eignet sich für die...
31.01.2011 03:40:05
Luc:-?
…Blattaktivierung nur bedingt, Thomas,
denn es tritt nur einmal während der Öffnungszeit der Mappe auf, wird also nur beim ersten Start der UF durchlaufen. Anschließend ist die UF für die ganze Zeit initialisiert! Verwende besser …_Activate!
Gruß Luc :-?
AW: Das Initialize-Ereignis eignet sich für die...
31.01.2011 17:02:37
Thomas
Hallo Luc,
habe "Private Sub UserForm_Activate() 'Initialize()"
versucht und hab den Tabellennamen vom Tab wo der Button sitzt eingegeben also Termine. Nun hab ich einen Fehler "Die Methode Rang für das Objekt Worksheet ist fehlgeschlagen"
>For Each Zelle In wksData.Range("Uhr").Cells Aber die UF geht nun im richtigen Tab auf.
Und Nun? Danke für die Hilfe.
MfG. Thomas
Anzeige
Gibt's denn dort 1en Zellbereichsnamen 'Uhr'? orT
31.01.2011 21:16:39
Luc:-?
Gruß Luc :-?
...Eben, und dazu hatte ich keine Lust,...
31.01.2011 03:32:00
Luc:-?
…Gerd,
wobei du Andere ruhig durch Thomas (bzw jemand) hättest ersetzen können… ;-)
@Thomas:
Eine UF erscheint immer ganz oben, also über dem aktiven Blatt. Deshalb hast du ja wohl einen Blattaktivierungsbefehl drin (evtl an falscher Stelle oder du bringst die Blätter durcheinander!)…
Gruß Luc :-?
AW: Ja da ist ein Bereich Uhr
01.02.2011 16:43:09
Thomas
Hallo Luc,
danke für Deine Hilfe habe den Bereich auf das erste Tab gelegt und es geht nun alles wunderbar.
Nochmals Danke und einen schönen Tag.
Gruß Thomas
Na also, geht doch... ;-) Gruß owT
01.02.2011 22:24:56
Luc:-?
:-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige