vba vraagje

Status
Niet open voor verdere reacties.

stappertje

Nieuwe gebruiker
Lid geworden
31 okt 2009
Berichten
4
heb een php scriptje geschreven om data op te halen van een ftp server en in te lzen in mysql

een van de files is in xls format en daarvoor een macro geschreven om deze om te zetten naar een csv.

op zich werkt dit prima maar helaas excel sluit zichzelf niet af en dus hangt het php script. Het wil een exit van excel hebben voor het verder kan. nu werkt dit wel als ik het excel bestandje met de macro open maar aals apache het doet sluit excel niet af ....

hieronder de code een redelijk simpele macro lijkt me..
Code:
Private Sub Workbook_Open()
    Application.DisplayAlerts = False
    ChDir "I:\ufp"
    Workbooks.Open Filename:="I:\UFP\pluserxul.xls"
    Rows("1:11").Select
    Range("A11").Activate
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "START"
    With ActiveCell.Characters(Start:=1, Length:=5).Font
        .Name = "Arial"
        .FontStyle = "Standaard"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    ActiveWorkbook.SaveAs Filename:="I:\UFP\pluserxul.csv", FileFormat:=xlCSV, _
        CreateBackup:=False
           
    Application.Quit
End Sub

Iemand een idee wat ik verder kan proberen ?
 
Laatst bewerkt:
je hebt de macro geplaatst in

Private Sub Workbook_Open()

End Sub
Dat is niet echt de meest voor de hand liggende plaats om Excel af te sluiten.........
Ik ben benieuwd naar het php-script, waarmee je het Excel bestand opent.
Aan je macro valt nog wel het een en ander te verbeteren:

Code:
Private Sub anders()
    With Workbooks.Open( "I:\UFP\pluserxul.xls")
        .Rows("1:11").Delete
        .Range("A1")= "START"
        .SaveAs "I:\UFP\pluserxul.csv", xlCSV
        .Close false
     End With
    Application.Quit
End Sub
Het heeft weinig zin een cel op te maken van een bestand dat als csv-bestand (zonder enige opmaak) wordt opgeslagen.
 
Laatst bewerkt:
PHP:
<?php
      
      $mars_conn = ftp_connect("ftp.domein.com");
      $login_result = ftp_login($mars_conn, "username", "passwoord");
      ini_set('max_execution_time', 600); 
      if (!$login_result)
      {
        echo "Error logging on to ftp.domein.com";
      }
      ftp_get($mars_conn,"pluserxul.xls","pluserxul.xls", FTP_BINARY,0); 
      unlink ("pluserxul.csv");
      ftp_close($mars_conn) ;
      exec("c:\progra~1\micros~2\office11\excel.exe  map1.xls");
      include ("import_def.php");
      supplier_data(2);
?>

dat is het php scriptje voor deze oplossing gekozen omdat ik weinig zin had om uit te zoeken hoe het via com zou moeten, hoewel het natuurlijk ook een optie is.
in import_def.php staat de functie supplier_data en de parameter 2 is voor de herkomst van deze file en dus de layout.

waarom de Application.DisplayAlerts = True voor de application.quit gezien als je een csv file open hebt hi altijd weer vraagt of je die wilt opslaan. de Application.DisplayAlerts = False was juist om die te onderdrukken.

En de macro is gemaakt met record macro dus er zal inderdaad wat overbodige code in staan maar geeft me snel iets om mee te werken zonder dat ik zelf alle objecten en dergelijke moet verzinnen. ben niet heel erg thuis in vba :-) kan er van alles mee maar doe het te weinig om alles top of my head te herinneren welke objecten er zijn en hoe ze te manipuleren ;-)
En meestal schoon ik het dan niet meer op als het eenmaal doet wat ik wil dat het doet.
 
Laatst bewerkt:
Nu het probleem maar opgelost door dit apart te doen en excel met een pskill te stoppen, maar een erg mooie oplossing vind ik het niet :-(

iemand die me verder kan helpen met hoe excel wel gesloten te krijgen vanuit de macro, ik hou me aanbevolen

met vriendelijke groet
Stappertje
 
Zoals mij gevraagd werd met een maitlje vanuit helpmij.nl even weer een post om het topic weer onder de aandacht te brengen gezien het nog niet is opgelost :-)

heb nu wel een oplossing maar die vind ik verre van fraai ...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan