Office: Probleme mit dem Code

Helfe beim Thema Probleme mit dem Code in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen Ich habe folgenden Code bei mir im VBA drin. Private Sub CommandButton1_Click() Sheets("Auftragskarte").Unprotect pw Dim... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Blacky1980, 8. November 2012.

  1. Blacky1980 Erfahrener User

    Probleme mit dem Code


    Hallo Zusammen

    Ich habe folgenden Code bei mir im VBA drin.

    Code:
    Private Sub CommandButton1_Click()
    Sheets("Auftragskarte").Unprotect pw
        Dim wbTarget As Workbook, wsTarget As Worksheet, wsSource As Worksheet
        Set wsSource = ThisWorkbook.Sheets("Auftragskarte")               'Tabelle, die kopiert werden soll
        Set wbTarget = Workbooks.Open("D:\Hartmann\Maschinen-Verwaltung\Aufträge\Auftragsübersicht.xls") 'Mappe, die geöffnet werden soll
        On Error Resume Next
        Set wsTarget = wbTarget.Sheets("Auftrag " & wsSource.Cells(19, 42))
        On Error GoTo 0
        If wsTarget Is Nothing Then
            Set wsTarget = wbTarget.Sheets.Add(after:=wbTarget.Sheets(wbTarget.Sheets.Count))
            wsTarget.Name = "Auftrag " & wsSource.Cells(19, 42)
            wsSource.Cells.Copy
            wsTarget.Cells(1, 1).PasteSpecial xlPasteValues
            wsTarget.Cells(1, 1).PasteSpecial xlPasteAll
            Range("B4").Select
            Application.CutCopyMode = False
            wbTarget.Close SaveChanges:=True
        Else
            MsgBox ("Kann nicht kopiert werden! Tabelle schon vorhanden.")
            wbTarget.Close SaveChanges:=False
        End If
        Unload Me
    End Sub
    Leider werden die Formel mit kopiert was ja nich sein soll. Es soll ja die Formel durch das Ergeniss ersetzt werden da ich ja nicht immer beide Mappen auf habe.

    Wäre schön wenn mir da mal jemad helfen kann.


    Gruß Michael
     
    Blacky1980, 8. November 2012
    #1
  2. Michael
    Michael Administrator
    Hallo Michael,

    ich gehe mal stark davon aus, dass diese Zeile hier das Problem ist:

    Code:
            wsTarget.Cells(1, 1).PasteSpecial xlPasteAll
    Du kopierst erst die Werte und danach Alles. Und Alles beinhaltet nunmal auch die Formeln. Falls es Dir um die Formate geht, die kannst Du mit
    Code:
    xlPasteFormats
    einfügen.

    Gruß
    Michael
     
    Michael, 8. November 2012
    #2
  3. Blacky1980 Erfahrener User
    Hallo Michael

    Danke für die super schnelle Antwort.

    Genau so wollte ich es haben!


    Vielen vielen dank

    Gruß Michael
     
    Blacky1980, 8. November 2012
    #3
  4. Blacky1980 Erfahrener User

    Probleme mit dem Code

    Eins habe ich noch vergessen

    Kannst Du mir verten wie ich das einstellen kann das die Nullwert keine Null haben. habe es zwar so eingestellt aber irgend wie geht das immer nur Blatt für Blatt und wenn dann nach dem kopieren wieder ein neues Blatt dazu kommt habe ich ja wieder die Null drin. Und wie bekomme ich das Bild auch mit kopier das in dem Blatt ist

    Danke

    Gruß Michael
     
    Blacky1980, 8. November 2012
    #4
  5. Michael
    Michael Administrator
    Ähmmm.... Du bist Dir schon drüber im Klaren dass ich Deine Tabelle nicht kenne oder? ;-)

    Also wenn Du mit den Nullwerten die Einstellung meinst die im Tabellenblatt die Nullwerte ausblendet dann füge einfach folgenden Code in Dein Makro mit ein:

    Code:
    ActiveWindow.DisplayZeros = False
    Er macht diese Einstellung in dem Tabellenblatt das gerade aktiv ist.

    Was hast Du für ein Bild in dem Tabellenblatt? Da würde es schon helfen wenn Du eine Beispieltabelle hochladen würdest.

    Gruß
    Michael
     
    Michael, 8. November 2012
    #5
  6. Blacky1980 Erfahrener User
    Hallo Michael

    Die Mappe wo es hin kopiert werden soll ist leer und hat auch keinen einzigen Code drin nur die Blätter die schon kopiert worden sind. Es gibt auch Zellen die nicht beschrieben sind und dann steht da eine 0 und das möchte ich nicht.

    Zu dem Bild

    Es wird von Mappe1 eine kopie von einem Tabellenblatt nach MappeB kopiert ohne Code und ohne Formeln.
    Es wird durch den folgenden Code ein Bild in Form eines QR-Codes erstellt im Format .png nun möchte ich das dieses Bild mit in die MappeB kopiert wird.

    Code:
    Private Sub CommandButton1_Click()
        
        TextBox1 = Cells(19, 42)
        
        Dim strTmpFile As String
        Dim strWWWAdr As String
        Dim bDownLoad As Boolean
        Dim img
        Dim strText As String, strPixelsize As String
      
        bDownLoad = True
        Select Case Len(TextBox1.Text)
        Case 0
            MsgBox "Es muss ein Text vorgeben werden", vbCritical, "QR Text"
            bDownLoad = False
        Case 300
            MsgBox "Achtung: Codes über 300 Zeichen können nicht alle Scanner lesen!", vbExclamation, "QR Text"
        End Select
        If Not bDownLoad Then
             TextBox1.Activate
        Else
            Application.StatusBar = "QR-Code wird generiert...(bitte warten)"
            strWWWAdr = "http://api.qrserver.com/v1/create-qr-code/?data=" & _
                        Replace(Replace(TextBox1, " ", "%20"), vbCrLf, "%0A") & _
                        "%0A&size=" & TextBox2 & "x" & TextBox2
            strTmpFile = ThisWorkbook.Path & "\temp.png"     'temporärerer Dateiname
            bDownLoad = DownloadFile(strWWWAdr, strTmpFile)  'png Datei herunterladen
            If bDownLoad = True Then
             'Ev alten QRCode löschen
             For Each img In Me.Pictures
                If img.Name = "myQRCode" Then img.Delete
              Next
             'QRCode einfügen
              With Me.Pictures.Insert(strTmpFile)
                  .Name = "myQRCode"
                  .Top = Me.Range("AC12").Top
                  .Left = Me.Range("AC12").Left
              End With
             'temporäre Datei löschen
              Kill strTmpFile
            Else
             'wenn Download nicht erfolgreich , dann Meldung
              MsgBox "Datei " & strWWWAdr & " konnte nicht heruntergeladen werden!"
            End If
            Application.StatusBar = False
        End If
    End Sub
    
    Private Sub TextBox1_Change()
        'Cells(11, 2) = Len(TextBox1) & " Zeichen"
    End Sub
    
    Private Sub TextBox2_LostFocus()
        If Val(TextBox2) < 50 Or Val(TextBox2) > 250 Then
            MsgBox "Die Pixelsize muss sich zwischen 50 und 250 px bewegen!", vbExclamation, "QR Grösse"
            TextBox2.Activate
        End If
    End Sub
    
    Private Sub Worksheet_Activate()
    Sheets("Auftragskarte").Protect Password:=pw, DrawingObjects:=False
        
    TextBox1 = Cells(19, 42)
    
    Dim strTmpFile As String
        Dim strWWWAdr As String
        Dim bDownLoad As Boolean
        Dim img
        Dim strText As String, strPixelsize As String
      
        bDownLoad = True
        Select Case Len(TextBox1.Text)
        Case 0
            MsgBox "Es muss ein Text vorgeben werden", vbCritical, "QR Text"
            bDownLoad = False
        Case 300
            MsgBox "Achtung: Codes über 300 Zeichen können nicht alle Scanner lesen!", vbExclamation, "QR Text"
        End Select
        If Not bDownLoad Then
             TextBox1.Activate
        Else
            Application.StatusBar = "QR-Code wird generiert...(bitte warten)"
            strWWWAdr = "http://api.qrserver.com/v1/create-qr-code/?data=" & _
                        Replace(Replace(TextBox1, " ", "%20"), vbCrLf, "%0A") & _
                        "%0A&size=" & TextBox2 & "x" & TextBox2
            strTmpFile = ThisWorkbook.Path & "\temp.png"     'temporärerer Dateiname
            bDownLoad = DownloadFile(strWWWAdr, strTmpFile)  'png Datei herunterladen
            If bDownLoad = True Then
             'Ev alten QRCode löschen
             For Each img In Me.Pictures
                If img.Name = "myQRCode" Then img.Delete
              Next
             'QRCode einfügen
              With Me.Pictures.Insert(strTmpFile)
                  .Name = "myQRCode"
                  .Top = Me.Range("AC12").Top
                  .Left = Me.Range("AC12").Left
              End With
             'temporäre Datei löschen
              Kill strTmpFile
            Else
             'wenn Download nicht erfolgreich , dann Meldung
              MsgBox "Datei " & strWWWAdr & " konnte nicht heruntergeladen werden!"
            End If
            Application.StatusBar = False
        End If
    End Sub
    
    
    Private Sub Worksheet_Deactivate()
    
    TextBox1 = Cells(19, 42)
    Ich hoffe Du verstehst nun mein kleines Problem.

    Gruß Michael
     
    Blacky1980, 8. November 2012
    #6
  7. Michael
    Michael Administrator
    Hallo Michael,

    du hast Zellen in denen nichts steht und Excel zeigt eine 0 an? Das würde ich gerne mal in einer Beispielmappe sehen.
    Was das Bild anbelangt: Ohne die Excelmappe zu sehen kann ich auch nur ungefähre Anweisungen geben. Ich würde an Deiner Stelle das Bild, kopieren mit
    Code:
    ActiveSheet.Shapes.Range(Array("Picture 1")).Copy
    und in der anderen Mappe einfügen. Der Name des Bildes muss natürlich angepasst werden.

    Viele Grüße
    Michael
     
    Michael, 8. November 2012
    #7
  8. Blacky1980 Erfahrener User

    Probleme mit dem Code

    Hallo Michael

    Die Datei ist leider viel zu groß um sie hier über das Forum hochzuladen. Ich habe die Datei daher auf meinen Server geladen.

    Wunder Dich bitte nicht das es soviele Codes und kram gibt aber die Datei ist Teilweise schon in nutzung und ich arbeite noch an der ganzen sache rum. Ist alles noch in Arbeit.

    Das Passwort für den Blattschutz ist Passwort nach Problemlösung entfernt.

    klick Hier zum Downloaden Link nach Problemlösung entfernt.

    Gruß Michael
     
    Zuletzt bearbeitet: 8. November 2012
    Blacky1980, 8. November 2012
    #8
  9. Michael
    Michael Administrator
    Hallo Michael,

    Und wo in der Datei sind jetzt die Nullen? Bzw. wo wird der QR Code erzeugt? Bitte sei so nett und beschreibe doch einfach ein bisschen was. Ich hab ehrlich gesagt keine Zeit mich durch 20 Module zu klicken bis ich die Probleme gefunden habe.

    Viele Grüße
    Michael
     
    Michael, 8. November 2012
    #9
  10. Blacky1980 Erfahrener User
    Hallo Michael

    Sorry hatte es vergessen zu schreiben. Ist ein Chaos in meiner Mappe aber in mom komme ich auch nicht dazu alles mal in Ordnung zu bringen.

    Die Tabelle ist ausgeblendet und der Name ist Auftragskarte.
    Das ist die Tabelle mit dem Bild und den Nullwerten.

    Gruß Michael
     
    Zuletzt bearbeitet: 8. November 2012
    Blacky1980, 8. November 2012
    #10
  11. Michael
    Michael Administrator
    Hallo Michael,

    der Code um den QR Code zu kopieren ist:

    Code:
    Sheets("Auftragskarte").Shapes.Range(Array("myQRCode")).Select
    Um ihn wieder einzufügen musst Du an der Stelle des Makros an der eingefügt werden soll folgenden Code eintragen:

    Code:
    Range("AC12").Select
    ActiveSheet.Paste
    
    Das mit den Nullen kann ich immer noch nicht nachvollziehen.

    Gruß
    Michael
     
  12. Blacky1980 Erfahrener User
    Hallo Michael
    Danke schon mal werde es gleich mal testen.

    Ich habe in der Auftragskarte Formeln drin. Wenn ich es so kopiere wie es bei Dir ist dann haben ich in der Kopierten Tabelle in der Zelle K11 eine Null stehen da für diese Zelle kein Wert vorhanden ist was auch in den anderen Zellen vorkommen kann. Nun möchte ich aber dort nichts stehen haben.

    Ich hoffe Du konntest mich nun verstehen.

    Gruß Michael
     
    Blacky1980, 8. November 2012
    #12
  13. Blacky1980 Erfahrener User

    Probleme mit dem Code

    Hallo Michael

    Wie und wo muß ich nun das einbauen damit das Bild kopiert wird.

    Hier mal der Code zum kopieren.

    Code:
    Private Sub CommandButton1_Click()
    Sheets("Auftragskarte").Unprotect pw
        Dim wbTarget As Workbook, wsTarget As Worksheet, wsSource As Worksheet
        Set wsSource = ThisWorkbook.Sheets("Auftragskarte")               'Tabelle, die kopiert werden soll
        Set wbTarget = Workbooks.Open("D:\Hartmann\Maschinen-Verwaltung\Aufträge\Auftragsübersicht.xls") 'Mappe, die geöffnet werden soll
        On Error Resume Next
        Set wsTarget = wbTarget.Sheets("Auftrag " & wsSource.Cells(19, 42))
        On Error GoTo 0
        If wsTarget Is Nothing Then
            Set wsTarget = wbTarget.Sheets.Add(after:=wbTarget.Sheets(wbTarget.Sheets.Count))
            wsTarget.Name = "Auftrag " & wsSource.Cells(19, 42)
            wsSource.Cells.Copy
            wsTarget.Cells(1, 1).PasteSpecial xlPasteValues
            wsTarget.Cells(1, 1).PasteSpecial xlPasteFormats
            Range("B4").Select
            Application.CutCopyMode = False
            wbTarget.Close SaveChanges:=True
        Else
            MsgBox ("Kann nicht kopiert werden! Tabelle schon vorhanden.")
            wbTarget.Close SaveChanges:=False
        End If
        Unload Me
    End Sub
    Ich habe es versucht aber es kommt immer wieder ein fehler.

    Gruß Michael
     
    Blacky1980, 8. November 2012
    #13
  14. Michael
    Michael Administrator
    Hallo Michael,

    jepp jetzt weiß ich worum es geht. Das war unmissverständlich. Das Problem ist, dass in Deiner Ausgangsdatei die Datei eben nicht leer ist sondern eine 0 drin steht. Du hast lediglich über die Optionen alle Nullen ausblenden lassen. Da diese Option nicht standardmäßig in neuen Arbeitsblättern gesetzt wird siehst Du auch eine Null in der Kopie. Es gibt jetzt 2 Möglichkeiten. Entweder Du sorgst dafür, dass Deine Formeln keine Nullen ausspucken sondern statt dessen ein leeres Feld, oder aber Du setzt in der neuen Datei eben auch die Option auf Nullen nicht anzeigen. Die Option mit Nullen ausblenden habe ich im folgenden Code miteingebaut:

    Code:
    Private Sub CommandButton1_Click()
    Sheets("Auftragskarte").Unprotect pw
        Dim wbTarget As Workbook, wsTarget As Worksheet, wsSource As Worksheet
        Set wsSource = ThisWorkbook.Sheets("Auftragskarte")               'Tabelle, die kopiert werden soll
        Set wbTarget = Workbooks.Open("Z:\Auftragsübersicht.xls") 'Mappe, die geöffnet werden soll
        On Error Resume Next
        Set wsTarget = wbTarget.Sheets("Auftrag " & wsSource.Cells(19, 42))
        On Error GoTo 0
        If wsTarget Is Nothing Then
            Set wsTarget = wbTarget.Sheets.Add(after:=wbTarget.Sheets(wbTarget.Sheets.Count))
            wsTarget.Name = "Auftrag " & wsSource.Cells(19, 42)
            wsSource.Cells.Copy
            wsTarget.Cells(1, 1).PasteSpecial xlPasteValues
            wsTarget.Cells(1, 1).PasteSpecial xlPasteFormats
            Range("B4").Select
            Application.CutCopyMode = False
            ActiveWindow.DisplayZeros = False 'Setzt die Option dass Nullen nicht angezeigt werden
            Windows("Maschinen Verwaltung.xls").Activate 'Ruft die Originaldatei auf
            Sheets("Auftragskarte").Shapes.Range(Array("myQRCode")).Select 'Wählt den QR Code aus
            Selection.Copy 'Kopiert den QR Code
            Windows("Auftragsübersicht.xls").Activate 'Zurück in die Auftragsübersicht
            Range("AC12").Select 'Richtige Zelle auswählen
            ActiveSheet.Paste 'einfügen
            wbTarget.Close SaveChanges:=True
        Else
            MsgBox ("Kann nicht kopiert werden! Tabelle schon vorhanden.")
            wbTarget.Close SaveChanges:=False
        End If
        Unload Me
        
    End Sub
    
    Achtung eventuell müssen die Dateinamen angepasst werden, je nachdem wie sie bei Dir heißen.

    Gruß
    Michael
     
  15. Blacky1980 Erfahrener User
    Hallo Michael

    Vielen Vielen Dank das klappt genauso wie gewollt. Kannst Du mir nur noch sagen wie ich die makierung nach dem Kopieren vom Bild lösen kann in beiden Mappen. Da nach aufruf der Auftragsübersicht das Bild noch Makiert ist. Habe das sogen das es einer versehntlich löscht oder so.

    Schön wäre es auch das wenn die Ziel-Datei schon öffen ist das er das öffnen überspringt und es gleich kopiert. Habe ich gerade germekt das mir dann eine Fehlermeldung kommt.

    Aber echt der Hammer wie Ihr alle das so könnt. Ich vermute mal das ich einfach zu blöd bin das zu lernen.

    Gruß Michael
     
    Zuletzt bearbeitet: 8. November 2012
    Blacky1980, 8. November 2012
    #15
Thema:

Probleme mit dem Code

Die Seite wird geladen...
  1. Probleme mit dem Code - Similar Threads - Probleme Code

  2. Probleme mit dem automatisches Inhaltsverzeichnis

    in Microsoft Word Hilfe
    Probleme mit dem automatisches Inhaltsverzeichnis: Hallo zusammen, ich stehe vor dem Problem, dass ich in einem automatischen Inhaltsverzeichnis zwei unterschiedliche Darstellung von Seitenzahlen haben möchte. Ich versuche es unten zu...
  3. Probleme mit bedingter Formatierung

    in Microsoft Excel Hilfe
    Probleme mit bedingter Formatierung: Hallo ihr Lieben, folgende Herausforderung: Ich möchte die Formatierung des Wertes in B7 (bzw. auch alle weiteren Werte in Spalte B) nach folgenden Bedingungen anpassen: 1. WENN C7<0,05 DANN...
  4. Probleme mit Formatierung in geschütztem Word-Dokument – Schriftstil nicht änderbar

    in Microsoft Word Hilfe
    Probleme mit Formatierung in geschütztem Word-Dokument – Schriftstil nicht änderbar: Hallo zusammen, ich habe ein Word-Dokument erstellt, das als Vorlage dient und entsprechend geschützt ist. Dabei sollen folgende Anforderungen erfüllt werden: Schriftart: Die Schriftart darf...
  5. VBA-Makro zur Zellenformatierung Syntax probleme

    in Microsoft Excel Hilfe
    VBA-Makro zur Zellenformatierung Syntax probleme: Hallo zusammen, ich möchte per Makro Zellen formatieren. Tausender-Trennzeichen 3 Nachkommastellen Positive Zahlen Schwarz Negative Zahlen Rot Nullwert mit - Hinter der Zahl soll noch eine...
  6. Probleme mit Makro das jede Zeile in der ein "Text" steht löscht?!

    in Microsoft Excel Hilfe
    Probleme mit Makro das jede Zeile in der ein "Text" steht löscht?!: Hallo Leute, Ich habe mal wieder ein Problem, ich hoffe ihr könnt mir hier helfen! :) Habe hier schon ein Makro soweit, aber es macht halt noch nicht genau das was es soll, woran ich natürlich...
  7. Probleme mit dem Kopieren aus Daten aus OneNote 2016

    in Sonstiges
    Probleme mit dem Kopieren aus Daten aus OneNote 2016: Hallo, ich habe neuerdings Probleme mit dem Kopieren von Texten aus OneNote heraus. Bei Whatsapp wird z. B. dann noch mal ein Bild mit eingefügt. Das gleiche Problem habe ich bei einem Webmailer....
  8. Probleme mit Summewenn bei neuer EXCEL Version

    in Microsoft Excel Hilfe
    Probleme mit Summewenn bei neuer EXCEL Version: Hallo zusammen, ich bin ratlos. In meinem alten EXCEL sheet hat die Funktion =SUMME(WENN(JAHR($E$7:$E$54)=2019;$G$7:$G$54)) super funktioniert. Mit der aktuellen EXCEL Version jetzt aber nicht...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden