![]() |
Anzeige:
|
|
|||||||
| Office-Anwendungen Das Forum für alle Office-Anwendungen wie z.B. Open-Office, Microsoft-Office (Word, Excel, Powerpoint, Access usw.) und Co. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hallo Ich habe einProblem:
Sub Makro4() ' ' Makro4 Makro ' kopieren ' ' ActiveWindow.SmallScroll Down:=-6 Range("E1:E23").Select Selection.Copy Sheets.Add After:=Sheets(Sheets.Count) Range("E1").Select ActiveSheet.Paste Application.CutCopyMode = False End Sub Das Makro kopiert mir Daten von einem Tabellenblatt in ein anderes, nun fehlt mir der Durchblick, wie ich es erreiche das die nächste Ausführung des Makros die Daten nicht in Spalte E sondern in die nächste freie kopiert (hier dann f) Danke im voraus Viktor Polansky |
|
|
|
|
#2 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 27.10.2010
Beiträge: 9
|
Nun auch als registrierter Benutzer.
|
|
|
|
|
|
#3 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 23.11.2008
Beiträge: 104
|
Hallo Viktor
Ein Beispiel Liebe Grüße Tanto Was ich allerdings nicht verstehe Du erstellst eine Neue Tabelle (die ja leer ist)und möchtest die nächste freie Spalte ermitteln Code:
ActiveSheet.Cells(1, ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column + 1).PasteSpecial Paste:=xlValues, Operation:=xlNone |
|
|
|
|
|
#4 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 27.10.2010
Beiträge: 9
|
Danke für das beispiel.
es ist so, in blatt eins wird eine Reihe von Messdaten eingeführt. diese werden gegen einen standart verglichen. dann laufen einige makros in sachen Etikettendruck, und dann soll dieser datensatz in ein anderes Blatt verschoben werden um dort dann als "Archiv" langfristig gespeichert werden. daher brauche ich dort die nächste leere Spalte. Ich hoffe das klärt deine Frage. vieleicht hilft das auch. Nun stellt sich ein weiteres problem: es soll eine schaltfläche da sein, die nur dann da ist wenn ein bestimmter wert in Zelle E25 vorhanden ist, ist dort kein ok drinn, soll die Schaltfläche nicht sichtbar sein... Na ja so ist das wenn man sich von Problem zu problem arbeitet. Gruß Viktor |
|
|
|
|
|
#5 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 23.11.2008
Beiträge: 104
|
Hallo Viktor
Ein Beispiel mit einem Element der Steuerelement-Tollbox Liebe Grüße Tanto Einzufügen Alt+F11/Projektexplorer/DeineTabelle Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Cells(1, 1) = "" Then
ActiveSheet.Shapes("CommandButton1").Visible = False
Else
ActiveSheet.Shapes("CommandButton1").Visible = True
End If
Application.EnableEvents = True
End Sub
Geändert von Tanto (28.10.2010 um 20:58 Uhr) |
|
|
|
|
|
|
#6 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 27.10.2010
Beiträge: 9
|
Hallo Tanto,
danke für das beispiel, ich werde es morgen früh versuchen. Gruß Viktor |
|
|
|
|
|
#7 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 27.10.2010
Beiträge: 9
|
Hallo Tanto,
ich stehe im Wald.... Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Cells(1, 1) = "ok" Then ActiveSheet.Shapes("CommandButton1").Visible = False Else ActiveSheet.Shapes("CommandButton1").Visible = True End If Application.EnableEvents = True End Sub Private Sub CommandButton1_Click() Testdruck End Sub Muss das nun so dort stehen, bzw, wie bekomme ich den Bezug auf die Zelle E 25? Gruß Viktor Polansky |
|
|
|
|
|
#8 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 23.11.2008
Beiträge: 104
|
Hallo Victor
Code:
Cells(DeineZeile, DeineSpalte) Code:
Cells(25,5) |
|
|
|
|
|
#9 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 27.10.2010
Beiträge: 9
|
Hallo Tanto,
ich verwende Excel 2007, und der button weigert sich einfach zu verschwinden, ich habe aus der toolbox eine aktiveX Schaltfläche eingefügt und diese wie oben beschreiben mit dem Code von Dir versehen. Egal ob ich ok oder no in das Feld schreibe es bleibt immer sichtbar... Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Cells(25, 5) = "ok" Then ActiveSheet.Shapes("CommandButton1").Visible = True Else ActiveSheet.Shapes("CommandButton1").Visible = False End If Application.EnableEvents = True End Sub Private Sub CommandButton1_Click() End Sub Es spielt wohl auch keine Rolle ob der Teil mit _Click oberhalb oder unterhalb des ganzen steht. Oder mache ich etwas grundsätzliches verkehrt? Ich teste jeweils mit ausgeschaltetem Entwurfsmodus. Gruß Viktor Polansky |
|
|
|
|
|
#10 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 23.11.2008
Beiträge: 104
|
Hallo Victor
Vielleich ist das Makro an der falschen Position,es muss hier eingefügt werden für den Automatismus Alt+F11/Projektexplorer/DeineTabelle Solltest Du nicht zurecht kommen,dann schau bitte in dein Postfach zum Emailaustausch Das Ergebnis poste ich dann zu angemessener Zeit ![]() Liebe Grüße Tanto Geändert von Tanto (30.10.2010 um 14:42 Uhr) |
|
|
|
|
|
|
#11 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 23.11.2008
Beiträge: 104
|
Hallo Community
Konnte leider nicht weiter helfen,da ich kein excel7 besitze und die Datei dadurch nicht lesbar war Liebe grüße Tanto |
|
|
|
|
|
#12 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 11.02.2009
Ort: Hagen, Westf.
Alter: 41
Beiträge: 171
|
@poly7164
Ich habe mir gerade mal Dein Problem angesehen. Möglich ist Dein Wunsch. Frage: Die Tabellen bestehen alle schon? Frage: Wie sind deren Namen? Habe heute mal angefangen, bei mir funktioniert es 07.11.2010. Es gibt drei Bereiche in denen Du die Codes einfügen musst: VBA Öffnen Folgenden Code in "Diese Arbeitsmappe" kopieren Code:
' ------------------------------------------------------------------------------
' Dieser Code ist für Paules PC Forum geschrieben und kann frei verwendet werden
' Einbinden dieser Teil gehört in "Diese Arbeitsmappe"
' Dazu VBA öffnen und im Projektexplorer "Diese Arbeitsmappe" öffnen
' Damit der COde funktioniert muss in der iSourcetabelle ein Button mit dem Namen
' cmdOK eingebettet sein.
' -------------------------------------------------------------------------------
Public Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Init
If Sh.Name = iSource Then ' Prüfen ob der Eintrag in der iSourcetabelle ist
Zelle = Target.Address ' Adresse des Range Objectes z.B. $A$1
iRow = Target.Row ' Zeile
iCol = Target.Column ' Spalte
iTar = Target.Text ' Wert in Zelle
If Zelle = iEntry And Range(iEntry) = "OK" Then ' Prüfe Überwachte Zelle auf OK
Worksheets(iSource).cmdOK.Visible = True ' Wenn OK dann Button anzeigen
Else
Worksheets(iSource).cmdOK.Visible = False ' wenn nicht Button nicht anzeigen
End If
End If
End Sub
Public Sub Init()
iEntry = "$B$3" ' Überwachte Zelle
iControl = "OK" ' Wert
iSource = "Tabelle1" ' Tabelle mit den Rohdaten
iTarget = "Tabelle2" ' Ziel Tabelle
iCopy = "E1:E23" ' Kopierbereich von iSource
End Sub
kopiert werden. Code:
' ------------------------------------------------------------------------------
' Dieser Code ist für Paules PC Forum geschrieben und kann frei verwendet werden
' Einbinden dieser Teil gehört in die SourceTabelle
' Dazu VBA öffnen und im Projektexplorer "Tabelle wo Button ist" öffnen
' Damit der COde funktioniert muss in der iSourcetabelle ein Button mit dem Namen
' cmdOK eingebettet sein.
' -------------------------------------------------------------------------------
Public Sub cmdOK_Click()
OK = Copy_Row
End Sub
Code:
' ------------------------------------------------------------------------------
' Dieser Code ist für Paules PC Forum geschrieben und kann frei verwendet werden
' Einbinden dieser Teil gehört in "Modul" muss eventuell noch angelegt werden
' Dazu VBA öffnen und im Projektexplorer "Diese Arbeitsmappe" rechts anklicken
' Im Pop up Einfügen auswählen und dann Modul. Modul auswählen und Code einfügen
' Damit der COde funktioniert muss in der iSourcetabelle ein Button mit dem Namen
' cmdOK eingebettet sein.
' -------------------------------------------------------------------------------
Public iEntry As String
Public iControl As String
Public iSource As String
Public iTarget As String
Public iCopy As String
Public Function Cells2Range(Zeile, Spalte)
Dim m1 As String
m1 = Columns(Spalte).Address(False, False)
m1 = Left(m1, InStr(m1, ":") - 1)
Cells2Range = Trim(m1) & Trim(Str(Zeile)) + ":" + Trim(m1) & Trim(Str(Zeile + 23))
End Function
Public Function Copy_Row()
iSpalte = 5 ' Beginn mit der Überprüfung bei E (6 währe F .....)
Do While iSpalte < 249
If Worksheets(iTarget).Cells(1, iSpalte) <> "" Then ' Prüfe die Zieltabelle
iSpalte = iSpalte + 1 ' Wenn Eintrag dann weiter
Else
Exit Do ' Schleife verlassen
End If
Loop
CtR = Cells2Range(1, iSpalte)
Worksheets(iSource).Range(iCopy).Select
Selection.Copy
Worksheets(iTarget).Select
Range(CtR).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Function
Sascha
__________________
Wer ein Problem erkennt, und nichts zu seiner Beseitigung unternimmt, der ist möglicherweise ein Teil dieses Problems. Besucht mich auf meiner HP: http:\\www.saolha.bplaced.net Geändert von Sascha Oliver Haak (07.11.2010 um 08:24 Uhr) |
|
|
|
|
|
#13 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 27.10.2010
Beiträge: 9
|
Hallo Sascha,
ich bekomme bei der Zeile : Worksheets(iSource).cmdOK.Visible = False ' wenn nicht Button nicht anzeigen immer wieder eine Fehlermeldung, ich habe die Codezeilen in eine neue Version meiner Datei eingefügt. Die Bezeichnungne für die Tabellen habe ich angepasst. Der Button verschwindet zwar, aber wenn er da ist passiert nichts wenn ich Ihn anklicke. iEntry habe ich auf "$E$23" gesetzt weil dies ja die Zelle ist die mir die Entscheidung OK oder NOK gibt. gerne sende ich dir die Datei zu. Gruß Viktor |
|
|
|
|
|
#14 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 27.10.2010
Beiträge: 9
|
Nachtrag:
Die Tabellen bestehen schon: Data => Rohdaten Übersicht => Ziel fürs Archiv |
|
|
|
|
|
#15 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 27.10.2010
Beiträge: 9
|
Hallo Sascha,
anbei meine Testdatei Ich weis nun nicht mehr was ich falsch mache. Gruß Viktor |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Excel Makro optimieren | manas | Office-Anwendungen | 5 | 13.11.2009 10:34 |
| Excel Makro | manas | Office-Anwendungen | 2 | 27.11.2008 07:35 |
| Excel Makro beim Starten von Excel mitstarten? | Throat | Office-Anwendungen | 1 | 16.04.2008 15:06 |
| Excel Makro zum MP3 abspielen | manas1 | Office-Anwendungen | 2 | 09.10.2005 07:27 |
| Parsen via Makro von Excel in Excel | Puliexon | Office-Anwendungen | 2 | 22.08.2005 21:04 |