Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VBA & Excel]

    Buongiorno a tutti,

    sto cercando di fare una piccola macro che copia alcuni dati da un foglio all'altro della stessa cartella. Quando nella riga del foglio sorgente ("Design List") vi è un'intestazione, riconoscibile dalla presenza in una specifica cella dalla scritta "GROUP xxxx" dove xxxx può essere "0000", "1000", "2000", etc..., la riga "ricevente" i dati (nel foglio "Monthly report") dovrà essere formattata come un'intestazione (Grassetto, centrato, corsivo, etc...). Il problema è che la macro non riconosce (almeno così credo) la presenza dell'occorrenza "GROUP" tra fogli diversi. Il ciclo non entra mai all'interno della If seguente:

    If InStr(1, Worksheets("Design List").Cells(x, 4) = "GROUP") = 1 then

    Ho messo il seguente MsgBox prima della If precedente:

    MsgBox Worksheets("Design List").Cells(x, 4) & " " &_
    InStr(1, Worksheets("Design list").Cells(x, 4) = "GROUP", 1)

    in modo da controllare cosa succedesse quando la macro legge la cella con la scritta "GROUP" (per capirci, Worksheets("Design List").Cells(x, 4); con x = 3; x= 59; etc....)
    e il MsgBox mi dà p.e. "GROUP 2000 0", mentre invece dovrebbe dare inequivocabilmente "GROUP 2000 1".

    La cosa che mi "indispettisce è che in quel foglio che ho indicato come sorgente, ("Design List"), vi è un'altra macro, che "agisce" solo in questo foglio, che ha un'istruzione del tutto simile a quella che mi dà problemi ma che, invece, funziona correttamente! Ecco l'istruzione:

    If InStr(1, Cells(a, 4), "GROUP", 1) = 0 then

    Anche in questo caso ho fatto alcuni controlli per vedere se funzionasse per "un mal funzionamento" ma invece è tutto ok. Per esempio, il MsgBox che ho messo prima dell'ultima If, mi restituisce giustamente "GROUP 3000 1" riconoscendo, quindi l'occorrenza "GROUP".
    La domanda è "PERCHè?"; cosa sbaglio nel primo caso? Come posso correggere?

    Grz

  2. #2

  3. #3

    Re: [VBA & Excel]

    [b]

    If InStr(1, Worksheets("Design List").Cells(x, 4) = "GROUP") = 1 then


    If InStr(1, Cells(a, 4), "GROUP", 1) = 0 then
    Nella prima c'è un "=" che non ci dovrebbe essere!!!!



Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.