Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Excel07] Αυτόματη αντικατάσταση εντός φύλλου (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/2745-aytomati-antikatastasi-entos-filloy.html)

Tasos 17-10-13 16:34

Αγαπητέ μου, λυπάμαι αλλά δεν ξέρω πως αλλιώς μπορώ να σε βοηθήσω.

Το "Δεν μου δουλεύει" δεν μου λέει απολύτως τίποτα.

Όταν σου δίνω ένα δοκιμασμένο λειτουργικό παράδειγμα που στο δικό σου περιβάλλον δεν δουλεύει
θα πρέπει εσύ να ψάξεις τι δεν κάνεις καλά.

Δεν μπορώ εγώ να γνωρίζω τι συμβαίνει στον υπολογιστή σου.

Θα δω το τελευταίο σου αρχείο και θα επανέλθω...

Τάσος

Tasos 17-10-13 17:06

1 Συνημμένο(α)
Θα πρέπει να συνδέσεις για μια και μοναδική φορά το φύλλο δεδομένων του αρχείου σου με το αρχείο C:\MyData\url.xlsx χειροκίνητα με τη μέθοδο εισαγωγής εξωτερικών δεδομένων για να λειτουργήσει.

Το παράδειγμα που επισυνάπτω χρησιμοποιεί το δικό σου αρχείο (url.xlsx ).

ΠΡΟΣΟΧΗ! Έγινε διόρθωση στο αρχείο. Παρακαλώ κατεβάστε το ξανά.

Καλή συνέχεια!

Τάσος

sotisanis 17-10-13 17:44

χτυπαει στο debug και δειχνει σε αυτο DownloadXLToFile

Tasos 17-10-13 18:22

Κάτι δεν κάνεις καλά.

Έλεγξε τις μεταβλητές και τα ονόματα των αρχείων απομακρυσμένων και τοπικών.

sotisanis 17-10-13 18:38

μηπως πρεπει να δηλωσω το DownloadXLToFile ως Dim DownloadXLToFile

Tasos 17-10-13 19:55

Μήπως δεν έβαλες τις συναρτήσεις:

Κώδικας:

#If VBA7 Then
    #If Win64 Then
        Private Declare PtrSafe Function DownloadXLToFile Lib "urlmon" _
                Alias "URLDownloadToFileA" ( _
                ByRef pCaller As LongPtr, _
                ByVal szURL As String, _
                ByVal szFileName As String, _
                ByVal dwReserve As Long, _
                ByRef lpfnCB As LongPtr) _
                As LongPtr

        Private Declare PtrSafe Function DeleteUrlCacheEntry Lib "wininet" _
                Alias "DeleteUrlCacheEntryA" _
                (ByVal lpszUrlName As String) As Long


    #Else
        Private Declare Function DownloadXLToFile Lib "urlmon" _
                                                  Alias "URLDownloadToFileA" ( _
                                                  ByVal pCaller As Long, _
                                                  ByVal szURL As String, ByVal szFileName As String, _
                                                  ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
        Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _
                                                    Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
    #End If
   
#Else
    Private Declare Function DownloadXLToFile Lib "urlmon" _
                                              Alias "URLDownloadToFileA" ( _
                                              ByVal pCaller As Long, _
                                              ByVal szURL As String, ByVal szFileName As String, _
                                              ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
    Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _
                                                Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
#End If

Το δικό μου παράδειγμα σου δουλεύει;

sotisanis 17-10-13 20:53

βαζω τωρα 32bit πραγματικα ειμαι ΠΟΛΥ ΧΑΖΟΣ!!! πηγα σε αλλο υπολογιστη με 32bit και δουλεψε μια χαρα.αλλα εχω μια απορεια ρε συ τασο.γιατι να υπαρχει και στον c my data? Αφου τραβαει δεδομενα απο internet και τα περναει αμεσως στην φορμα και οκ μετα.

Tasos 17-10-13 21:10

Δουλεύει και σε 64 bit. Επικόλλησε τις συναρτήσεις που παραθέτω στο προηγούμενο μου μήνυμα (έκανα μια διόρθωση στο όνομα της συνάρτησης DownloadXLToFile).

Το παραδειγματικό αρχείο δεν τραβάει δεδομένα από το Internet.

Δεν μπορεί ένας Linux να σου στείλει τα δεδομένα από ένα *.xlsm.

Απλά κατεβάζει το αρχείο στο φάκελο MyData κάθε φορά που πατάς το κουμπί για να κάνεις ανανέωση.

Τα δεδομένα που βλέπεις στο βιβλίο σου δεν πηγάζουν από το Internet αλλά από το αρχείο που έχει μεταφορτωθεί αυτόματα με κώδικα στο φάκελο MyData.

Τάσος

sotisanis 17-10-13 21:25

ναι αλλα αν δεν εχει ο αλλος τον φακελο my data στον υπολογιστη του?
επισης πως μπορω να το κανω για να παιρνει αμεσως απο το url?
με xml?

Tasos 17-10-13 22:14

Αν δεν υπάρχει ο φάκελος "MyData" τότε θα δημιουργηθεί αυτόματα.
Ενδέχεται ο χρήστης να μην έχει πρόσβαση στη διαδρομή C:\.

Σ΄ αυτή την περίπτωση φρόντισε να μετακινήσεις το φάκελο σε κάποια διαδρομή που θα είναι προσβάσιμη από τον χρήστη.

Θα πρέπει να αλλάξεις τα ονόματα των αρχείων καθώς και τη διαδρομή του φακέλου στον κώδικα.
Επίσης θα πρέπει να τροποποιήσεις τη σύνδεση του βιβλίου σου για να βρίσκει το αρχείο με τα δεδομένα αφού το μετακινήσεις.

Όσο για το XML, μπορείς να ανοίξεις νέο θέμα και να βάλεις εκεί την ερώτηση σου αφού πρώτα μελετήσεις το θέμα εδώ: Αντιστοίχιση και κατάργηση αντιστοίχισης στοιχείων XML - Excel - Office.com

Τάσος


Η ώρα είναι 23:43.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2