Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

[Office 2010] flaggare casella in word da vba excel

  1. #1
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Post
    56
    Like Inviati  
    5
    Like Ricevuti  
    0
    Buongiorno a tutta la board,
    ho un problema con la compilazione di un foglio word dal VBA di Excel 2010, nel dettaglio devo compilare un modulo word con una serie di dati (nome, cognome etc..) ma devo anche flaggare una casella in base a varie condizioni.
    L'inserimento dei campi l'ho risolto con l'inserimento dei segnalibri sul modulo word, in questo modo :
    Sub copiasuword()
    folderpath = Application.ActiveWorkbook.Path 'Percorso File
    Stringa1 = Range("e2").Value
    Stringa2 = Range("f2").Value
    Dim sFILENAME As String
    sFILENAME = Application.ActiveWorkbook.Path & "\attestato di qualifica.docx"
    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Open(sFILENAME)
    With wrdDoc
    .Bookmarks("cognome").Range.Text = Stringa1
    .Bookmarks("nome").Range.Text = Stringa2
    End With
    ActiveDocument.SaveAs Filename:=folderpath & "\Repository\" & Stringa1 & ".docx"
    wrdApp.Quit
    End Sub
    
    ma ho anche delle caselle da flaggare come nella foto allegata,https://photos.app.goo.gl/obcYFzCfWDLvxpvg9 che non so come attivare tramite VBA, c'è un modo per farlo ?
    Grazie per l'attenzione
    ℹ️ Leggi di più su attila666 ...

  2. #2
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Post
    56
    Like Inviati  
    5
    Like Ricevuti  
    0
    Ho qualche info in più, i box sono inseriti dalla scheda sviluppo, ed è una casella di controllo (controllo modulo) moduli Legacy.
    Poi evidenziandolo e andando in proprietà c'è la possibilità di inserite "titolo" e "Tag" quindi è identificabile, ma come la controllo da vba Excel ?
    ℹ️ Leggi di più su attila666 ...

  3. #3
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,245
    Blogs
    3
    Like Inviati  
    19
    Like Ricevuti  
    13
    il CheckBox facente parte dei controlli Legacy, se non ricordo male, dipende dall'oggetto Document, quindi dovresti potervi accedere tramite la variabile oggetto relativa al Documento che hai dichiarato nel tuo codice:

    wrdDoc.NomeTuoCheckBox.Value = True
    
    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  4. #4
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Post
    56
    Like Inviati  
    5
    Like Ricevuti  
    0
    grazie per la risposta, ma non riesco a inserirlo nel mio codice (vista anche la mia conoscenza scolastica di vba) cortesemente potresti darmi qualche info in più per provare ad inserirlo ?
    Grazie ancora
    ℹ️ Leggi di più su attila666 ...

  5. #5
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,245
    Blogs
    3
    Like Inviati  
    19
    Like Ricevuti  
    13
    Scusami, capisco la poca competenza, ma hai scritto già il codice che ti inserisce i dati in corrispondenza dei Bookmarks... devi semplicemente aggiungere in quella parte la riga di codice che ti ho riportato nel post precedente, cambiando "NomeTuoCheckBox" con il nome che hai attribuito al tuo controllo.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  6. #6
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Post
    56
    Like Inviati  
    5
    Like Ricevuti  
    0
    ma ho fatto proprio cosi e mi restituisce
    "proprietà o metodo non supportati dall'oggetto", allora ho pensato che avessi sbagliato qualcosa, credevo dovessi aggiungere qualche riferimento o dichiarare qualcos'altro sul codice.
    ho provato anche questo trovato in rete, ma non va,
    objDoc.FormFields("prova").CheckBox.Value = True
    
    .
    e giusto per allinearci, io parlo della "casella di controllo" inseribile dai moduli legacy e non la "casella combinata" sempre legacy, giusto (allego foto)
    https://www.dropbox.com/s/wffdprcd3k...aglio.JPG?dl=0
    ℹ️ Leggi di più su attila666 ...

  7. #7
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Post
    56
    Like Inviati  
    5
    Like Ricevuti  
    0
    ho provato a inserire una checkbox dei controlli ActiveX e la tua riga di codice funziona, sarebbe possibile darmi un suggerimento per la "casella di controllo" legacy ?
    Se non è possibile grazie mille comunque per l'assistenza.
    Ciao e Auguroni per le feste
    ℹ️ Leggi di più su attila666 ...

  8. #8
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,245
    Blogs
    3
    Like Inviati  
    19
    Like Ricevuti  
    13
    OK. Allora avevo equivocato il tipo di controllo... credevo avessi utilizzato l'ActiveX.

    In questo caso, il controllo va a far parte della collection FormFields e, come hai già detto prima, l'unico modo per valorizzare il controllo è questo:

    objDoc.FormFields("NomeDelControllo").CheckBox.Value = True
    
    Ovviamente "NomeDelControllo", è il nome che assegni al controllo nella sua finestra delle proprietà.

    Se hai un errore, come dicevi nel tuo post precedente, dovresti indicare di quale si tratta, "non va" non è sufficiente. Inoltre ho provato la sintassi ed il controllo viene correttamente valorizzato.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  9. #9
    L'avatar di attila666
    attila666 non è in linea Scolaretto
    Post
    56
    Like Inviati  
    5
    Like Ricevuti  
    0
    Allora, con questo codice
    Sub copiasuword()
    folderpath = Application.ActiveWorkbook.Path 'Percorso File
    Stringa1 = Range("e2").Value
    Stringa2 = Range("f2").Value
    Dim sFILENAME As String
    Dim objdoc As Object
    sFILENAME = Application.ActiveWorkbook.Path & "\attestato di qualifica.docx"
    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Open(sFILENAME)
    With wrdDoc
    .Bookmarks("cognome").Range.Text = Stringa1
    .Bookmarks("nome").Range.Text = Stringa2
    .objdoc.FormFields("prova").CheckBox.Value = True
    End With
    objdoc.FormFields("prova").CheckBox.Value = True
    ActiveDocument.SaveAs Filename:=folderpath & "\Repository\" & Stringa1 & ".docx"
    wrdApp.Quit
    End Sub
    
    restituisce: errore'438' Proprietà o metodo non supportati dall'oggetto

    se la metto al di fuori del blocco Whit mi dice: errore '91' Variabile oggetto o variabile del blocco whit non impostata
    ℹ️ Leggi di più su attila666 ...

  10. #10
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,245
    Blogs
    3
    Like Inviati  
    19
    Like Ricevuti  
    13
    Sinceramente non capisco a cosa ti serva objDoc se hai già wrdDoc che rappresenta la variabile oggetto relativa al documento.
    la sintassi corretta dovrebbe essere questa:

    With wrdDoc
        .Bookmarks("cognome").Range.Text = Stringa1
        .Bookmarks("nome").Range.Text = Stringa2
        .FormFields("prova").CheckBox.Value = True
    End With
    
    e, ovviamente, elimina la riga analoga fuori dal With...End With

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Flaggare check box da VBA ad EXCEL
    Da 6vior nel forum Microsoft Excel
    Risposte: 21
    Ultimo Post: 22-11-2020, 11:01
  2. Risposte: 2
    Ultimo Post: 04-10-2012, 15:38
  3. Risposte: 21
    Ultimo Post: 22-05-2012, 18:14
  4. Istruzioni di compilazione Office 2007 vs Office 2010
    Da arcithepirate nel forum Microsoft Word
    Risposte: 3
    Ultimo Post: 28-03-2012, 16:07
  5. Foglio di Excel nella stampa unione office 2010
    Da Mmoreno nel forum Microsoft Excel
    Risposte: 0
    Ultimo Post: 13-02-2012, 18:23