[EXCEL 2003] Makro für verschieben und löschen von ganzen Zeilen

Thomas Ramel

Stammgast
Guten Morgen Maik

OK, ich glaube ich habe verstanden worum es geht - füge mal diese Zelien hier am Anfang des bestehenden Makros ein - ersetze dabei die Variablen-Deklaration komplett durch diese neue hier:

Code:
    On Error GoTo ErrorHandler
    Application.EnableEvents = False

    Dim ws As Worksheet
    Dim rngWert As Range
    Dim rngReplace As Range
    Dim lngRow As Long
    Dim lngAnzahl As Long
    Dim lngErsetzen As Long
    Dim dblWert As Double
    Dim strFormel As String

    'Prüfen ob Zahl 7 in Spalte A steht, ansonsten verschieben
    If WorksheetFunction.CountIf(Range("A:A"), 7) > 0 Then

        'die Zeile mit der Zahl 7 suchen
        Set rngWert = Range("A:A").Find(What:=7, _
                                        After:=Range("A1"), _
                                        LookIn:=xlFormulas, _
                                        LookAt:=xlWhole)


        'den Wert aus Spalte B auslesen
        dblWert = rngWert.Offset(0, 1).Value

        'zählen wie oft der Wert aus Spalte B in Spalte B gesamthaft enthalen ist
        lngAnzahl = WorksheetFunction.CountIf(Range("B:B"), dblWert) - 1

        'Die Anzahl Zeilen duchlaufen und Wert kopieren
        If lngAnzahl > 0 Then
            Set rngReplace = rngWert.Offset(0, 1)
            For lngErsetzen = 1 To lngAnzahl
                Set rngReplace = Range("B:B").Find(What:=dblWert, _
                                                   After:=rngReplace, _
                                                   LookIn:=xlFormulas, _
                                                   LookAt:=xlWhole)

                rngReplace.Offset(0, 10).Resize(1, 12).Value = _
                rngWert.Offset(0, 11).Resize(1, 12).Value

            Next lngErsetzen
        End If
        rngWert.Value = 8
    End If
 

Miniturtle

Stammgast
Top top top

Moin Thomas!

Wie gewohnt, TOP!

Das Makro läuft genauso wie ich es mir vorgestellt habe!!!

Hattest Du schonmal geschaut ob es Möglich ist über ein Makro das in "Mappe_leer" verankert ist die "Mappe1" zusätzlich zu öffnen???

Das Makro wird bei Eingabe der Summenformel in Zeile 2 Spalte 1 (A) gestartet und die Zeile 1 Spalte 1 (A) wird überprüft ob eine 1 vorhanden ist, falls das der Fall ist soll zusätzlich die Exceldatei "Mappe1" (vom USB-Stick) geöffnet werden.


Gibt es eigentlich Literatur dazu wie man einfache Makro schreiben kann, es fasziniert mich echt was und wie man das mit Makros lösen kann?!?!?!

So ich glaube dass ich mir echt noch was einfallen lassen muss wie ich mich bei Dir revangieren kann!!!
 

Thomas Ramel

Stammgast
Grüezi Maik

Miniturtle schrieb:
Wie gewohnt, TOP!

Das Makro läuft genauso wie ich es mir vorgestellt habe!!

Danke für die Blumen, es freut mich sehr wenn das auf Anhieb so gut läuft :-)


Miniturtle schrieb:
Hattest Du schonmal geschaut ob es Möglich ist über ein Makro das in "Mappe_leer" verankert ist die "Mappe1" zusätzlich zu öffnen???

Ja, das habe ich getan und die folgenden Zeilen sind dabei herausgekommen:

Code:
Private Sub Worksheet_Calculate()
'------------------------------------------------------------
' Procedure : Worksheet_Calculate
' Author    : t.ramel@mvps.org
' Date      : 23.01.2013
' Revised   :
' Purpose   : Öffnet die Schnittliste vom USB-Stick zur
'             weiteren Verarbeitung
'------------------------------------------------------------
    On Error GoTo ErrorHandler
    Application.EnableEvents = False


    Dim wb As Workbook

    'Prüfen ob Zahl 1 in Zelle A1 steht
    If Range("A1").Value = 1 Then

        'die Datei 'Mappe1' von einem definierten Prad öffnen.
        'Laufwerks-Zuordnung des USB-Stick muss immer gleich sein
        'Hier muss undbedingt der Pfad angepasst werden
        
        Set wb = Workbooks.Open(Filename:="F:\Mappe1.xls")


        'Prüfen ob Zahl 2 in Zelle A1 steht
    ElseIf Range("A1").Value = 2 Then

        'die Datei 'Mappe1' ohne zu speichern schliessen
        Workbooks("MAppe1.xls").Close False

    End If

    'Formelzelle Inhalt löschen
    Range("A2").ClearContents

ErrorHandler:
    Application.EnableEvents = True
End Sub


Miniturtle schrieb:
Gibt es eigentlich Literatur dazu wie man einfache Makro schreiben kann, es fasziniert mich echt was und wie man das mit Makros lösen kann?!?!?!

Gute Grundlagen zur VBA-Programmierung mit Excel findest Du in dieser PDF-Broschüe hier:

http://www.fernuni-hagen.de/imperia/md/content/zmi_2010/b012.pdf


Miniturtle schrieb:
So ich glaube dass ich mir echt noch was einfallen lassen muss wie ich mich bei Dir revangieren kann!!!

Ich würde ganz gerne mal die Anlage sehen, die damit gesteuert wird :-)
 

Miniturtle

Stammgast
Standartdruckerumschaltung

Moin Thomas!

kannst Du mir sagen ob man per Makro (Excel) den Standatdrucker umschalten kann???

Ich habe zwei Drucker mit den ich je nach Anwendung drucken möchte, leider greift meine Software nur auf den Standartdrucker zu.

Also möchte ich per Summenformel (wie gewohnt) das Makro starten und bei einer 1 in Zeile 5 Spalte A möchte ich den DYMO 450 als Standartdrucker eingestellt haben und bei dem Wert 2 den DYMO 400.

Brauche erstmal nur eine Antwort ob es möglich wäre!

MfG Maik
 

Thomas Ramel

Stammgast
Grüezi Maik

Ja, das ist machbar, hier ein Code-Beispiel dazu:

Code:
    If Range("A5").Value = 1 Then
        Application.ActivePrinter = "Samsung ML-1860 Series auf Ne01:"
    Else
        Application.ActivePrinter = "PDF Complete auf PDFC"
    End If

An die Namen der Drucker im System kommst Du wenn Du den Makro-Recorder startest und den Drucker in Excel einmal hin und her wechselst.

Die so aufgezeichneten Namen fügst Du oben dann in den Code ein und fügst noch das Drucken an sich hinzu.
 

Miniturtle

Stammgast
So, Makro mit der Druckerumschaltung läuft! Aber leider nur innerhalb von Excel!

Eine Druckerunschaltung ausserhalb von Excel wird per Makro wohl nicht möglich sein, oder? Ich meinte die Druckerunschaltung unter Start-> Geräte und Drucker (weil meine externe Software nur auf den Drucker zugreifen kann der in der Systemsteuerung als Standartdrucker eingestellt ist!

Oder ich muss irgendwie versuchen die Daten die ich drucken möchte über Excel auf´s Etikett zu bekommen, dann wäre die Druckerumschaltung ja über Dein Makro möglich!

MfG Maik
 

Miniturtle

Stammgast
Hi Thomas!

MIt der Druckerumschaltung ausserhalb von Excel brauchst Dir erstmal keinen Kopf machen, ich denke ich habe einen Weg gefunden den Standartdrucker automatisch umzuschalten!

Ich habe mir eine Software ("SetDefaultPrinter") runtergelden die die Druckerumschaltung in der Systemsteuerung durchführt, diese mit meiner externen Software verknüpft, und es läuft, ich kann zwischen mehreren Druckern hin- und herschalten, klappt wie ich mir gedacht habe!

Aber trotzdem danke für Dein Makro (Druckerumschaltung innerhalb von Excel)!!!

Eine andere Frage hab ich noch, aber dazu in den nächsten Tagen mehr!!!

MfG Maik
 
Zuletzt bearbeitet:
Oben