Scrivere ex novo codice vba scritte in rosso

di il
7 risposte

Scrivere ex novo codice vba scritte in rosso

Ciao ragazzi stavo provando a riscrivere un codice vba ex novo ricopiandolo da uno esistente, ho copiato il testo in word e stampato il cartaceo, ma non mi esce, o meglio il testo apparentemente è corretto ma la stringa esce in rosso e da errore di compilazione, dove sta l'errore?

7 Risposte

  • Re: Scrivere ex novo codice vba scritte in rosso

    Senza vedere il codice è complicato. Prova a digitare almeno una riga da capo manualmente. Magari hai dei caratteri che non sono stampabili a video (e che quindi non vedi ne in Word ne nell'editor) che danno noia.

    Se riscritta di sana pianta resta non evidenziata, sai che il problema è li. Dubito in qualche bug dell'Intellisense (almeno, io non ne ho mai sentito parlare).

  • Re: Scrivere ex novo codice vba scritte in rosso

    Questo non è scritto ex novo

    ma è rilevato tramite OCR dal documento word stampato, perchè non avevo voglia di risciverlo e pensavo fosse sufficente.

    Pensavo fosse sufficente rimuovere gli a capo di troppo


    Private Sub Worksheet Before DoubleCoByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("D1" Nothing Then
    Target. Value Date

    Elself Not Intersect(Target, Range("A7:1000")) Is Nothing Then

    Dim Rng As Range

    On Error Resume Next

    tbiname [A6] ListObject Name

    Set Rig = ActiveSheet.ListObjects(tbiname). ListColumns(1).

    Range SpecialCells(xlCellTypeBlanks)

    On Error GoTo 0

    If Not Rng Is Nothing Then Rng.Delete Shift:=xlUp

    Cancel = True

    End If

    End Sub

    Private Sub Worksheet SelectionChange(ByVal Target As Range) If Fict. Intersect Target, Range("M3")) Is ng Then Range("M:M1000), ValueRange("L4:L-1000), Value

    ActiveSheet.Range("Reshape timbrature (Dipendente]").RemoveDuplicates

    Columns: 1

    Header:=xlyes

    Range("M4").Select

    End If

    End Sub

  • Re: Scrivere ex novo codice vba scritte in rosso

    31/10/2025 - Jekob_82 ha scritto:

    sufficente

    Ora, se io fossi un compilatore, segnalerei l'errore.

    31/10/2025 - Jekob_82 ha scritto:

    non avevo voglia di risciverlo

    Un copiato di una paginetta?

    Adesso, riflettendo a freddo, quanto tempo hai risparmiato?

    A fare le cose per bene si impiega meno tempo che a farle male.

    31/10/2025 - Jekob_82 ha scritto:

    Private Sub Worksheet Before DoubleCoByVal Target As Range, Cancel As Boolean)

    Di solito le parentesi prima si aprono...

  • Re: Scrivere ex novo codice vba scritte in rosso

    31/10/2025 - Jekob_82 ha scritto:

    ("Reshape timbrature (Dipendente]"

    Anche le parentesi quadre prima si aprono e poi si chiudono, ma il controllo ocr non lo sa.

  • Re: Scrivere ex novo codice vba scritte in rosso

    31/10/2025 - Jekob_82 ha scritto:

    pensavo fosse sufficente

    Ora sai che non è una buona strada. Come già fatto notare si è mangiato molte parentesi, per non parlare di punti, underscore e caratteri fraintesi.

    Quando condividi il codice, usa il tag apposito. Risulta più facile da leggere. :)

  • Re: Scrivere ex novo codice vba scritte in rosso

    31/10/2025 - Jekob_82 ha scritto:

    Pensavo fosse sufficente rimuovere gli a capo di troppo

    Ma tu hai la minima idea della sintassi del linguaggio? Sono semplici errori di sintassi per qualche carattere mancante, parentesi, underscore e simili.

    Se programmi col copia incolla non andrai da nessuna parte. Leggi le singole linee e correggi, è molto semplice e provarci non costa nulla.

    P.S. dopo una cinquantina di messaggi dovresti sapere che il codice su forum va inserito formattato usando i tag opportuni.

  • Re: Scrivere ex novo codice vba scritte in rosso

    Ciao,

    il problema molto probabilmente non è nel codice “logico” ma nella formattazione del testo che hai copiato da Word o da un’altra fonte.

    Quando si copia del codice VBA da Word o da un file formattato, il testo può contenere caratteri nascosti o virgolette non valide, che VBA interpreta come errore di sintassi o di compilazione. Ti spiego dove guardare:

    Word sostituisce spesso le virgolette normali " con le virgolette tipografiche (“ ”).

    In VBA queste non vengono riconosciute e causano errori di compilazione o evidenziano la riga in rosso.

    Apri l’Editor VBA, cancella e riscrivi manualmente tutte le virgolette del codice.

    Controlla gli spazi o i caratteri invisibili

    A volte Word inserisce spazi non standard o caratteri Unicode invisibili.

    Puoi individuarli cancellando e riscrivendo da zero solo la parte di codice che dà errore.

    Copia il codice in Blocco note (Notepad) prima di incollarlo in Access.

    In questo modo rimuovi qualsiasi formattazione indesiderata.

    Io prima lo copio si note e poi lo trasferisco non faccio direttamente.

    Verifica parentesi e concatenazioni

    Se hai copiato un codice con concatenazioni di stringhe (es. & _ a fine riga), assicurati che:

    • Ogni riga terminata con _ sia seguita da invio e non da un carattere nascosto.
    • Le parentesi tonde siano bilanciate.

      Un solo carattere errato può far scattare l’errore di compilazione.

    IL tuo codice è pieno di errori, ti spiego quello che ti succede è perfettamente normale: il testo che hai ottenuto dal documento Word tramite OCR non è identico al codice sorgente VBA originale, anche se a occhio sembra corretto.

    L’OCR tende a confondere caratteri come parentesi, punti, virgolette e spazi, che in VBA sono fondamentali per la compilazione.

    Nel tuo caso ci sono vari errori di sintassi generati automaticamente, te ne evidenzio alcuni principali:

    1. ? Private Sub Worksheet Before DoubleCoByVal Target As Range, Cancel As Boolean)

      ?? Corretto:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    1. ? If Not Intersect(Target, Range("D1" Nothing Then

      ?? Corretto:

    If Not Intersect(Target, Range("D1")) Is Nothing Then

    1. ? Target. Value Date

      ?? Corretto:

    Target.Value = Date

    ed altri ......

Devi accedere o registrarti per scrivere nel forum
7 risposte