Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] creare un collegamento ipertestuale automatico

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] creare un collegamento ipertestuale automatico

Postdi xaba » 13/03/12 16:51

Ciao a tutti.
Ho un file excel per la registrazione delle fatture, in ogni riga registro una fattura. Nella colonna A ho il numero progressivo di registrazione (che inserisco io a mano) e vorrei collegare ciascun numero alla scansione pdf della fattura corrispondente, che effettuo a mano e memorizzo in una cartella specifica del mio pc con un nome tipo scansione0001, scansione0002, scansione0003 e così via. Come posso automatizzare il processo di creazione collegamento ipertestuale senza stare ogni volta a riscrivere la formula?
xaba
Utente Junior
 
Post: 99
Iscritto il: 21/02/02 17:28
Località: craven road

Sponsor
 

Re: [Excel] creare un collegamento ipertestuale automatico

Postdi Flash30005 » 13/03/12 18:02

In un modulo inserisci questa macro
Codice: Seleziona tutto
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const SW_NORMAL = 1
Public NumF As Integer
Sub Collega()
NumF = 1
perc = "C:\Temp\"
Agg = 4 - Len(NumF)
NFile = "Scansione" & Format(NumF, "0000") & ".pdf"
Application.ScreenUpdating = False
    Dim X As Long
    X = ShellExecute(hWnd, "Open", perc & NFile, vbNullString, vbNullString, SW_NORMAL)
    Application.ScreenUpdating = True

End Sub


Nel Vba del foglio
questo codice
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
UR = Range("B" & Rows.Count).End(xlUp).Row
Area = "B2:B" & UR
If Not Application.Intersect(Target, Range(Area)) Is Nothing Then
    Range("A" & Target.Row).Value = Val(Range("A" & Target.Row - 1)) + 1
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UR = Range("B" & Rows.Count).End(xlUp).Row
CArea = "A2:A" & UR
If Not Application.Intersect(Target, Range(CArea)) Is Nothing Then
If (Selection.Rows.Count + Selection.Columns.Count) > 2 Then Exit Sub
NumF = Target
Call Collega
End If
End Sub


Ogni volta che digiti qualsiasi cosa in B avrai la numerazione sequenziale in A
quando selezionerai una cella in A (numero della fattura) si aprirà il file .pdf da te scelto
Correggi il percorso "C:\Temp\" da me usato con il percorso dei tuoi file .pdf

Ricorda che il percorso deve avere lo Slash finale "C:\TuoPercorso\"

Ciao

P.s. Modificata macro ore 18:15
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] creare un collegamento ipertestuale automatico":


Chi c’è in linea

Visitano il forum: PcBase e 6 ospiti