Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Aus Bestellungen Provisionsblätter generieren

Betrifft: Aus Bestellungen Provisionsblätter generieren von: Sven
Geschrieben am: 29.08.2014 11:32:09

Hallo zusammen,
ich benötige Eure Hilfe.

Fall:
Ich habe eine Liste für Bestellungen, die täglich bearbeitet/befüllt wird.
Nun sollen die Daten, wenn diese gefüllt sind, in das nächste Tabellenblatt „Provision“ geschrieben werden. Die Werte aus
Spalte F in Zelle C7
Spalte G in Zelle C4
Spalte H in Zelle C3
Danach soll das Tabellenblatt unter dem Dateinamen (Spalte I) abgespeichert werdn.
Geht das über ein Makro?

Vielen Dank!
Sven

File upload
https://www.herber.de/bbs/user/92382.xlsx

  

Betrifft: AW: Aus Bestellungen Provisionsblätter generieren von: Jack_d
Geschrieben am: 29.08.2014 11:50:34

Hallo Sven,
ja das kann man

hier mal ein ansatz

Sub Makro1()
With Worksheets("Übersicht Bestellungen")
    For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
    
            Total = .Cells(i, 6)
            Fuenfzehn = .Cells(i, 7)
            fuenfundzwanzig = .Cells(i, 8)
            
            Worksheets.Add After:=Sheets(Sheets.Count)
            
                With ActiveSheet
                     .Cells(7, 3) = Total
                     .Cells(4, 3) = Fuenfzehn
                     .Cells(3, 3) = fuenfundzwanzig
                     .Move
                End With
                
                ActiveWorkbook.Save
    Next i
    
End With

 

End Sub



  

Betrifft: DAs Blatt PROVISION fehlt zwar, geht aber per VBA von: NoNet
Geschrieben am: 29.08.2014 12:06:00

Hallo Sven,

leider hast Du uns das Blatt "Provision" vorenthalten, daher habe ich es einfach mal mit einem LEEREN Blatt "Provision" getestet. Als Pfad verwende ich den gleichen Pfad wie die Bestelliste, ansonsten bitte den individuellen Pfad im Code anpassen und das Kommentarzeichen ' zu Beginn der Zeile entfernen !

Sub Provisionsliste()
    Dim wsBestellungen As Worksheet, wsProv As Worksheet
    Dim lngZ As Long, strDateiname As String, strPfad As String, lngC As Long
    
    Set wsProv = Worksheets("Provision")
    Set wsBestellungen = Worksheets("Übersicht Bestellungen")
    wsBestellungen.Activate
    
    strPfad = ActiveWorkbook.Path & "\" 'Pfad der Bestelliste - ODER :
    'strPfad="C:\Temp\Daten\" 'Individueller PFad - mit "\" am Ende !
    
    If MsgBox("Sollen jetzt die einzelnen Bestellugnen als Provisionsdateien im Verzeichnis" &  _
vbLf & vbLf & _
        strPfad & vbLf & vbLf & "Gespeichert werden ?", vbYesNo + vbQuestion, " _
Provisionsdateien speichern") = vbYes Then
        
        For lngZ = 2 To Cells(Rows.Count, 1).End(xlUp).Row 'Von Zeile 2 bis zum Ende der Liste
            If Application.Count(Cells(lngZ, 5).Resize(, 3)) > 0 Then 'Nur wenn in Spalten F:H  _
ein Wert steht
                wsProv.Copy 'Das Blatt "Provision" als neue Mappe kopieren
                [C3] = wsBestellungen.Cells(lngZ, 7) 'Spalte H in C3
                [C4] = wsBestellungen.Cells(lngZ, 6) 'Spalte G in C4
                [C7] = wsBestellungen.Cells(lngZ, 5) 'Spalte F in C7
                
                ActiveWorkbook.SaveAs strPfad & wsBestellungen.Cells(lngZ, 9) 'Speichern mit  _
Dateiname aus Spalte I
                ActiveWorkbook.Close 'Provisionsdatei schließen
                
                lngC = lngC + 1 'Zähler erhöhen
            End If
        Next
        
        MsgBox "Es wurden " & lngC & "Provisionsdateien erstellt !", vbInformation + vbOKOnly, " _
FERTIG !"
    End If
End Sub
Eine Frage noch : Was meintest Du mit dieser Einschränkung :
Nun sollen die Daten, wenn diese gefüllt sind,

Derzeit werden Provisionsdateien aus ALLEN Zeilen erstellt, da in jeder Zeile im Bereich F:H Daten enthalten sind.

Gruß, NoNet


  

Betrifft: Korrektur : Nur Spalten F:G prüfen von: NoNet
Geschrieben am: 29.08.2014 12:22:35

Hallo Sven,

eine kleine Korrektur, um nur die Inahlte der Spalten F:G zu prüfen (in Spalte H steht ja immer ein Wert drin) :

If Application.Count(Cells(lngZ, 6).Resize(, 2)) > 0 Then
Salut, NoNet


  

Betrifft: AW: Korrektur : Nur Spalten F:G prüfen von: Sven
Geschrieben am: 29.08.2014 13:36:00

Hallo, vielen Dank für die Hilfe.
hast Du die Datei denn wieder als upload gemacht?
Beim Versuch den CODE "reinzubauen", bekomme ich einen Syntaxfehler angezeigt (also VBA bin ich komplett blank). Sorry:

If MsgBox("Sollen jetzt die einzelnen Bestellugnen als Provisionsdateien im Verzeichnis" & _
vbLf & vbLf & _
strPfad & vbLf & vbLf & "Gespeichert werden ?", vbYesNo + vbQuestion, " _
Provisionsdateien speichern") = vbYes Then


Danke schon mal.

Sven


  

Betrifft: Bestelliste : Datei als Upload gemacht ;-) von: NoNet
Geschrieben am: 29.08.2014 14:28:00

Hallo Sven,

nein, ich hatte die Datei noch nicht als Upload gemacht ;-) - das habe ich jetzt aber nachgeholt, hier ist sie :

https://www.herber.de/bbs/user/92388.xlsm

Das Makro wird über die große rote Schaltfläche im Blatt "Übersicht Bestellungen" gestartet.
Den Code des Makros kannst Du im VBA-Editor in "Modul1" anschauen :



In den VBA-Editor gelangst Du per Tastenkombination Alt+F11.

Gruß, NoNet


  

Betrifft: AW: Bestelliste : Datei als Upload gemacht ;-) von: Sven
Geschrieben am: 29.08.2014 16:07:48

Super, - VIELEN DANK, ich hoffe ich komme nun so langsam in den MODUS


 

Beiträge aus den Excel-Beispielen zum Thema "Aus Bestellungen Provisionsblätter generieren"