Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

la macro non funziona più

  • Messaggi
  • OFFLINE
    fabio70m
    Post: 58
    Registrato il: 25/05/2015
    Età: 53
    Utente Junior
    2007
    00 20/05/2022 19:23
    salve , ho dovuto modificare un foglio Excel che utilizzo per i turni di lavoro, all'interno del foglio uso una macro da voi gentilmente creata ad ok che prima della modifica funzionava meravigliosamente e ora invece non produce più nessun effetto, potete dirmi il perché e come modificarla perché funzioni di nuovo?
    Allego foglio Excel e vi copio le righe della macro.
    In pratica la macro se trova m1,m1, o m3 aggiunge nella cella sotto p1,p2, o p3, la macro deve lavorare nel range di celle delimitate dal bordo grosso nero, e colorate in azzurro.


    testo della macro

    Sub Aggiungi_le_P()

    ' Aggiungi_le_P

    ' Controllata funfiona correttamente
    ' Abbinata a fioglio "PRIMA"

    ur = 68 'ultima riga
    uc = 32 'ultima colonna

    For j = ur To 2 Step -1
    For i = 1 To 32
    Select Case Cells(j - 1, i)
    Case Is = "M1"
    Cells(j, i) = "P1"
    Case Is = "M2"
    Cells(j, i) = "P2"
    Case Is = "M3"
    Cells(j, i) = "P3"
    End Select
    Next i
    Next j
    End Sub

    io ho provato a metterci le mani ma senza nessun risultato

    grazie veramente
  • OFFLINE
    federico460
    Post: 2.608
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 20/05/2022 19:28
    ciao
    se scrivi m2 al posto di M2

    mica funziona eh!

    tutto maiuscolo
    [Modificato da federico460 20/05/2022 19:30]
  • OFFLINE
    fabio70m
    Post: 58
    Registrato il: 25/05/2015
    Età: 53
    Utente Junior
    2007
    00 21/05/2022 11:55
    Re:
    federico460, 20/05/2022 19:28:

    ciao
    se scrivi m2 al posto di M2

    mica funziona eh!

    tutto maiuscolo



    Grazie , che mona che sono, non mi ero accorto a dire il vero di aver scritto in minuscolo, non pensavo che la macro distinguesse tra maiuscole e minuscole. quindi vi chiedo per affinare la macro, è eventualmente possibile che la macro agisca indifferentemente che siano maiuscole o minuscole le lettere?
    Ed inoltre , la macro agisce individuando un reticolo di celle comprese tra una ultima riga ed una ultima colonna, partendo sempre dalla cella a1, ma sarebbe possibile farle delimitare il reticolo per esempio partendo dalla cella b2?

    io in attesa cerco info in giro
    grazie



  • OFFLINE
    dodo47
    Post: 3.300
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 21/05/2022 16:29
    ciao
    se vuoi rendere indifferente la maiuscola o la minuscola scritta sul foglio, devi utilizzare UCase, per esempio:

    Select Case UCase(Cells(j - 1, i))
    Case Is = "M1"

    in questo caso sei comunque obbligato a scrivere nel codice ...="M1" (e così per gli altri) sempre in Maiuscolo, altrimenti se vuoi scrivere liberamente sia sul foglio che sulla macro in maiuscolo o minuscolo dovrai fare:

    Select Case UCase(Cells(j - 1, i))
    Case Is = ucase("M1") --------------->oppure: Case Is = ucase("m1")......è indifferente.

    Per l'altro quesito, Il codice parte dal basso verso l'alto :

    For j = ur To 2 Step -1 (queste sono le righe)

    ed analizza tutte le colonne da 1 a 32
    For i = 1 To 32 (queste sono le colonne)

    se vuoi evitare la colonna A, devi fare:
    For i = 2 To 32

    saluti



    [Modificato da dodo47 21/05/2022 16:30]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    fabio70m
    Post: 59
    Registrato il: 25/05/2015
    Età: 53
    Utente Junior
    2007
    00 25/05/2022 13:07
    Re:
    dodo47, 21/05/2022 16:29:

    ciao
    se vuoi rendere indifferente la maiuscola o la minuscola scritta sul foglio, devi utilizzare UCase, per esempio:

    Select Case UCase(Cells(j - 1, i))
    Case Is = "M1"

    in questo caso sei comunque obbligato a scrivere nel codice ...="M1" (e così per gli altri) sempre in Maiuscolo, altrimenti se vuoi scrivere liberamente sia sul foglio che sulla macro in maiuscolo o minuscolo dovrai fare:

    Select Case UCase(Cells(j - 1, i))
    Case Is = ucase("M1") --------------->oppure: Case Is = ucase("m1")......è indifferente.

    Per l'altro quesito, Il codice parte dal basso verso l'alto :

    For j = ur To 2 Step -1 (queste sono le righe)

    ed analizza tutte le colonne da 1 a 32
    For i = 1 To 32 (queste sono le colonne)

    se vuoi evitare la colonna A, devi fare:
    For i = 2 To 32

    saluti






    grazie sto valutando come modificare la macro che ora uso.