Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-12-2002, 19:09   #1
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
problemi con FINDWINDOW

Chi sà spiegarmi perché, se ci sono altri file di excel aperti (ridotti a icona), questa sub non riesce ad aprire “cambi.xls”?
Se Excel non è in esecuzione tutto ok, su load della maschera di access viene aperto il file di excel e attivato il foglio “query web”, se “CAMBI.xls” è già aperto, ma solo lui!, esce dalla sub e carica direttamente la maschera.

Codice:
'In un modulo di access 2000'

Option Compare Database
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub excel()

Dim path
Dim MyXL
Dim hWnd As Long

hWnd = FindWindow(vbNullString, "Microsoft Excel - CAMBI.xls")

If hWnd = 0 Then '0 significa che il file di Excel non è in esecuzione.

Set MyXL = GetObject("C:\documenti\CAMBI.xls")
    MyXL.Application.Visible = True
    MyXL.Parent.Windows(1).Visible = True
    MyXL.Sheets("query web").Activate
Set MyXL = Nothing

Else
 Exit Sub
End If

End Sub

'In una maschera di access'

Private Sub Form_Load()
 excel
End Sub
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 19:30   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non ho capito bene qual è il problema... Me lo potresti rispiegare ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 19:43   #3
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Questa sub mi serve per aprire CAMBI.xls da access all'apertura di una maschera, ma se ci sono altri file di excel aperti la sub non riesce ad aprire il file.
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 19:46   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quale ramo dell' If fa nel caso che sia già aperto un file di Excel ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 19:47   #5
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
La modifica è per togliere 2 dim che non c'entravano nulla.
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 19:50   #6
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Con questa riga vorrei controllare se CAMBI.xls è aperto :If hWnd = 0 Then '0 significa che "CAMBI.xls" non è in esecuzione.

Codice:
'In un modulo di access 2000' 

Option Compare Database 
Option Explicit 

Private Declare Function FindWindow Lib "user32" Alias _ 
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 

Sub excel() 

Dim path 
Dim MyXL 
Dim hWnd As Long 

hWnd = FindWindow(vbNullString, "Microsoft Excel - CAMBI.xls") 

If hWnd = 0 Then '0 significa che "CAMBI.xls" non è in esecuzione. 

Set MyXL = GetObject("C:\documenti\CAMBI.xls") 
    MyXL.Application.Visible = True 
    MyXL.Parent.Windows(1).Visible = True 
    MyXL.Sheets("query web").Activate 
Set MyXL = Nothing 

Else 
Exit Sub 
End If 

End Sub 

'In una maschera di access' 

Private Sub Form_Load() 
excel 
End Sub
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 19:55   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "CIUFFO"

Con questa riga vorrei controllare se CAMBI.xls è aperto :If hWnd = 0 Then '0 significa che "CAMBI.xls" non è in esecuzione.
Ok... ma che ramo dell'if ti fa nel caso che un altri documento xls sia aperto (che se ho capito è il caso in cui non ti viene aperto CAMBI.xls) ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2002, 20:33   #8
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originally posted by "CIUFFO"

Questa sub mi serve per aprire CAMBI.xls da access all'apertura di una maschera, ma se ci sono altri file di excel aperti la sub non riesce ad aprire il file.

forse perchè devi portare cambi.xls in primo piano
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2002, 11:23   #9
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Per misterX:
come lo porto in primo piano da VB?
Già c'è
Codice:
MyXL.Sheets("query web").Activate
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2002, 11:27   #10
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Per Cionci

Non c'è un ramo dell'if per il caso che un'altro .xls sia aperto
L'if controlla solo se "CAMBI.xls" è già aperto ed esce dalla sub se è gia aperto altrimenti lo apre, solo che se ci sono altri .xls non ci riesce e non capisco perchè.
Ciao
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2002, 17:09   #11
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
ho provato anch'io le API da te proposte, in effetti, se sul titolo della windows non compare per intero

"Microsoft Excel - Cartel1.xls"

la window non viene trovata

non sono un profondo conoscitore di VB ma per similitudine, ho idea che devi utilizzare ulteriori API del tipo

GetNextWindow() passandogli come handle

hwnd = FindWindow(0,"Microsoft Excel")

GetNextWindow(hwnd,GW_HWNDNEXT)


ma sicuramente in VB vi è un metodo più semplice

hai provato la FindWindowEx()?

a me purtroppo molte API sotto Excel non funzionano quindi non posso fare molte prove
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 10:22   #12
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Se metti un msgbox qualunque nella open del workbook del file .xls richiesto:
Codice:
Private Sub Workbook_Open()
MsgBox "ciao"
End Sub
Find windows apre il file .xls anche se ce ne sono altri aperti, ma una volta dato l'ok a msgbox excel dà il focus ad un'altro file .xls e quello richiesto che era apparso con l'msgbox sparisce!
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 10:26   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ma se è già aperto CAMBI.xls, ma non ha il focus, FindWindow te lo trova ?
In questo caso dovrebbe bastare usare nuovamente FindWindow per ottenere l'handle alla finestra di CAMBI.xls...poi gli setti il focus con l'API SetFocus...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 16:16   #14
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Se Cambi.xls è già aperto l'IF va su else ed esce dalla sub.
Io voglio aprire Cambi.xls solo se non è già aperto, solo che se ci sono altri .xls findwindows non ci riesce, ovvero, ci riesce ma una volta dato ok a msgbox sparisce.
se provi questo esempio capirai:
Codice:
'in un modulo
Option Compare Database
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub excel()
Dim path
Dim MyXL
Dim hwnd As Long

path = "c:\documenti\excel\Cartel1.xls"

hwnd = FindWindow(vbNullString, "Microsoft Excel - Cartel1.xls")

If hwnd = 0 Then ' 0 significa che il file di Excel non è in esecuzione.

Set MyXL = GetObject(path)

    MyXL.Application.Visible = True
    MyXL.Parent.Windows(1).Visible = True
   
Set MyXL = Nothing

Else
 Exit Sub
End If

End Sub

'in una maschera
Private Sub Form_Load()
excel
End Sub

'in Cartel1.xls

Private Sub Workbook_Open()
MsgBox "ciao"
End Sub
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 16:29   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "CIUFFO"

Se Cambi.xls è già aperto l'IF va su else ed esce dalla sub.
Appunto... Guarda come lo modifico per rendere attivo CCAMBI.XLS

Codice:
'in un modulo
Option Compare Database
Option Explicit

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Private Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long

Sub excel()
Dim path
Dim MyXL
Dim hwnd As Long

path = "c:\documenti\excel\Cartel1.xls"

hwnd = FindWindow(vbNullString, "Microsoft Excel - Cartel1.xls")

If hwnd = 0 Then ' 0 significa che il file di Excel non è in esecuzione.

Set MyXL = GetObject(path)

    MyXL.Application.Visible = True
    MyXL.Parent.Windows(1).Visible = True
   
Set MyXL = Nothing

hwnd = FindWindow(vbNullString, "Microsoft Excel - Cartel1.xls")
If hwnd <> 0 Then
SetForegroundWindow(hwnd)
SetFocus(hwnd)
End If

Else
 Exit Sub
End If

End Sub

'in una maschera
Private Sub Form_Load()
excel
End Sub

'in Cartel1.xls

Private Sub Workbook_Open()
MsgBox "ciao"
End Sub
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 19:30   #16
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Ho provato la tua modifica, ma non cambia nulla!
Dopo aver dato l'ok a msgbox cartel1 sparisce!
E poi hai messo:
Codice:
hwnd = FindWindow(vbNullString, "Microsoft Excel - Cartel1.xls") 
If hwnd <> 0 Then 
SetForegroundWindow(hwnd) 
SetFocus(hwnd) 
End If
Io devo dare il focus a Cartel1 dopo averlo aperto con getobject(path) e solo se non è già aperto.
E' chiaro che se è già aperto non devo aprirlo ancora.
La mia sub serve per aprire Cartel1 solo nel caso non sia già aperta.
Spero di essere stato chiaro.
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 20:11   #17
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
devi andare a cercarla la window con GetNextWindow()

ci sono in rete un sacco di esempi adatti allo scopo


prova una cosa del genere:

Codice:
  hwindow = FindWindow(vbNullString, "Microsoft Excel")

  if hwindow <> 0 then
    hwindow = FindWindowEx(hwindow, 0, "Cambi.xls", vbNullString)
  end if

  If hwindow = 0 Then msgbox "Cambi.xls non trovata"
  msgbox hwindow
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 20:14   #18
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
sob, doppio post
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 20:28   #19
CIUFFO
Member
 
L'Avatar di CIUFFO
 
Iscritto dal: Feb 2001
Città: Reggio Emilia
Messaggi: 230
Già provato, non funzia!
CIUFFO è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2002, 20:29   #20
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
hai provato enumerando le window?
misterx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Vast prosegue la costruzione della stazi...
Chiarito cosa è successo al satel...
Il TAR annulla Bologna Città 30. ...
Laptop con chip NVIDIA da marzo? Emergon...
Costruito in casa, più veloce di ...
Il nuovo Galaxy Book 6 Pro costa il 25% ...
C'è un boom del mercato dei data ...
OVHcloud annuncia la disponiiblità...
Il Wi-Fi 7 ha un nuovo re: da ASUS arriv...
In arrivo l'auto "Frankenstein"...
Chip NVIDIA H200 in Cina? 'Come vendere ...
iPhone 16 torna super conveniente: ora c...
Offerte Amazon pazzesche: tech, smartpho...
Ubisoft annuncia l'arrivo dei 60 fps per...
Infratel Italia: ecco la nuova mappa del...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:44.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v