Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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

If Then Abfrage

If Then Abfrage
Michael
Hallo ,
ich habe hier im Forum eine Funktion verwendet um den aktuellen Computernamen auszulesen. Je nachdem auf welchem Computer eine bestimmte datei ausgeführt und gespeichert wir soll eine Sicherungskopie angelegt werden. Leider funktioniert die Bedingung nicht sondern es wird egal wie der Computername lautet eine Sicherungskopie angelegt. Auch wenn der Computername in Anführungszeichen geschrieben wird.
Code in diese Arbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Bisulfitafüllung").Delete
Call GetComputerName(sTxt, 64)
Const Originalpfad = "D:\Bisulfit Abfüllung\"
Const Sicherungspfad = "C:\temp\"
If sTxt = Laptop Then
Dim Dateiname
Dateiname = ActiveWorkbook.Name
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=Originalpfad & Dateiname
ActiveWorkbook.SaveAs Filename:=Sicherungspfad & Dateiname
Application.DisplayAlerts = True
End If
End Sub

Code in Modul
Declare Function GetComputerName& Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lbbuffer As String, nsize As Long)
Sub CptName()
Dim sTxt As String * 64
Call GetComputerName(sTxt, 64)
MsgBox sTxt
End Sub
Kann mir jemand erklären wo der Fehler liegt
Mit freundlichem Gruß
Michael

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: If Then Abfrage
12.07.2010 20:39:26
Josef

Hallo Michael,
versuch es so.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim strCompName As String * 64
  On Error Resume Next
  Application.CommandBars("Bisulfitafüllung").Delete
  
  
  Call GetComputerName(strCompName, 64)
  
  Const Originalpfad = "D:\Bisulfit Abfüllung\"
  Const Sicherungspfad = "C:\temp\"
  If strCompName Like "Laptop*" Then
    Dim Dateiname
    Dateiname = ActiveWorkbook.Name
    
    Application.DisplayAlerts = False
    
    ActiveWorkbook.SaveAs Filename:=Originalpfad & Dateiname
    ActiveWorkbook.SaveAs Filename:=Sicherungspfad & Dateiname
    
    Application.DisplayAlerts = True
  End If
End Sub

Gruß Sepp

Anzeige
AW: If Then Abfrage
12.07.2010 21:00:57
Michael
Hallo Sepp,
vielen Dank für die schnelle Antwort. So klapptes .Verstanden habe ich es nicht so ganz.Brauche ich das Modul mit der Declare Anweisung nun gar nicht?
Michael
AW: If Then Abfrage
12.07.2010 21:07:49
Josef

Hallo Michael,
die API-Funktion brauchst du schon.
Diese gibt den Coputernamen zurück der aber in etwa so aussieht.
"Laptop                                                                  "

ein String mit einer Länge von 64 Zeichen.
Mit Like vergleichst du deinen String mit dem Computernamen, egal wie viele Leerzeichen angehängt sind.

Gruß Sepp

Anzeige
AW: If Then Abfrage
12.07.2010 21:26:02
Michael
Hallo Sepp,
danke für die erklärung. Wenn ich bei dem ursprünglichen code anstelle von = ,auch like Laptop* eingebe funktioniert es hier auch. Auch groß und kleinschreibung mß beachtet werden.
Excel ist wohl sehr genau !
Gruß und Dank
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige