Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

CODICE VBA - COLLEGAMENTO IPERTESTUALE SOLO SE FOTO E' PRESENTE

Ultimo Aggiornamento: 09/06/2020 22:41
Post: 79
Registrato il: 25/03/2014
Città: AGEROLA
Età: 31
Utente Junior
2013
OFFLINE
09/06/2020 12:53

Buongiorno,
ho un file excel di 10000 righe. Per ogni riga, in una cartella sul desktop ho delle foto.
La pecca è che alcune foto finiscono per _1 o _2 o_3 oppure _4.

il codice che ho fatto a priori crea il collegamento ipertestuale indifferentemente se la foto esiste oppure no. Vorrei aggiungere un if che dice se la foto esiste nella cartella allora crea il codice ipertestuale altrimenti no...

Come devo fare questo controllo ??? ?
09/06/2020 13:37

La cosa migliore sarebbe di rinominare tutti i file togliendo il _y, comunque se non sai quale numero finale ci sia trà nome_1, nome_2, nome_3, nome_4. Puoi fare un ciclo For x 1 to 4
Public Function FileExists( _
sPercorso As String) As Boolean
FileExists = Len(Dir(sPercorso))
End Function
Sub cerca()
Dim sFolder As String, sFile As String, Nome As String
Dim x As Long
sFolder = "C:\inserisci il percorso\" ' con \ finale
sFile = "1_4.jpg"
For x = 1 To 4
    Nome = Left(sFile, InStr(sFile, "_")) & x & ".*"
    If FileExists(sFolder & Nome) = True Then
         'creare il collegamento
         Exit For
    End If
Next
End Sub
Post: 79
Registrato il: 25/03/2014
Città: AGEROLA
Età: 31
Utente Junior
2013
OFFLINE
09/06/2020 14:45

Ciao ti ringrazio per la tua pronta risposta...
Ho provato a modificarlo a mio piacimento ( facendo dei test seguendo i miei metodi)... non riesco a farlo partire. Non è che puoi controllarlo ? Poichè il nome dell'immagine è composto da :
colonna p & "_" & colonnad & INCOGNITA & ".JPG"
ho capito da codice che lui cerca il primo _ o sbaglio?


ti allego il codice che ho modificato...

Public Function FileExists( _
sPercorso As String) As Boolean
FileExists = Len(Dir(sPercorso))
End Function
Sub cerca()
Dim sFolder As String, sFile As String, Nome As String, riga As Integer

Dim x As Long
sFolder = "C:\Users\Danilo\Desktop\foto\" ' con \ finale
sFile = Cells(2, 16) & "_" & Cells(2, 4) & "_4.jpg"
For riga = 1 To 10
Cells(riga, 29).Select
For x = 1 To 4
Nome = Left(sFile, InStr(sFile, Cells(2, 4) & "_")) & x & ".*"
If FileExists(sFolder & Nome) = True Then
MsgBox ("foto trovata" & sFolder & Nome)
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
sFolder & Cells(2, 16) & "_" & Cells(2, 4) & "_" & x & ".jpg", TextToDisplay:="foto"
Exit For
End If
MsgBox ("foto non trovata" & sFolder & Nome)
Next
End Sub


'nome della foto :la colonna p _ colonna d _ incogniata .jpg
' il ciclo riga controlla tutte le 10000 righe del file, e verifica secondo il nome della foto se esiste. se dovesse esistere allora il collegamento va inserito nella colonna ac per poi passare alla riga successiva..



09/06/2020 18:10

Senza vedere il files non posso dire altro...

>>>nome della foto :la colonna p _ colonna d _ incogniata .jpg
Se in Cells(2, 16) esiste AAA
Se in Cells(2, 4) esiste BBB
Con l'incognita (che potrebbe essere da 1 a 4) ...
>>>sFile = Cells(2, 16) & "_" & Cells(2, 4) & "_4.jpg" ???
Il nome della foto sarebbe AAA_BBB_41.jpg (oppure _42.jpg ,_43.jpg ,_44.jpg)?
Post: 80
Registrato il: 25/03/2014
Città: AGEROLA
Età: 31
Utente Junior
2013
OFFLINE
09/06/2020 22:41

OTTIMOOOOOOOOOO

Avevo lasciato i messaggi per capire di preciso che foto prendeva...Solo così facendo ho capito che prendeva in considerazione il primo _
.


Nome = Left(sFile, InStr(sFile, ".") - 1) & "_" & x & ".jpg"
If FileExists(sFolder & Nome) = True

Io l'ho tradotta così....

nome (variabile)
a sinistra( nomefoto, estrai/ trova ( dal nomefoto il valore .) il carattere prima del punto= & ecc......

se esiste il file (percorso della foto) = vero

Io l'ho tradotta così..
Ma visto che non conoscevo dell'esistenza del codice "se esiste il percorso", come avrei potuto fare per trovare questa parte di codice?
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 06:20. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com