Modificare una cella in base al valore di un'altra cella

Anonimo
2011-04-06T16:51:57+00:00

Vorrei  per favore un codice che, ogni qualvolta trovi un determinato valore, si sposti in un'altra colonna sulla stessa riga e ne cancelli il contenuto.Grazie.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2011-04-08T11:51:23+00:00

Intanto mi sento in colpa perchè nel frattempo mi sono abituato al primo, che nella attesa, nell' ordine comunque dei nanosecondi, è anche bello perchè fa scalare i numerini che ho in una cella che tiene conto di tutti i movimenti, ( il saldo di un conto corrente ), con un certo effetto.

Quindi, io sono apposto e ti ringrazio.

Ho provato questo nuovo.

Si, è praticamente immediato, solo che ho notato che cancella perfettamente la colonna "F", ma indipendentemente da quello che c'è scritto sulla "H", cioè non serve "abc", che io ho rimpiazzato con "*", (e forse è proprio qua che ho fatto danno), basta che ci sia qualcosa scritto. E' possibile?

Non impazzire che per me va bene così, chiedo solo a fine di imparare qualcosa, se avrai tempo, ecc.

Grazie davvero!!

Sì Il simbolo * sta per "qualunque cosa".

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2011-04-07T08:18:38+00:00

Vorrei  per favore un codice che, ogni qualvolta trovi un determinato valore, si sposti in un'altra colonna sulla stessa riga e ne cancelli il contenuto.Grazie.

Per favore, utilizza dei titoli più significativi per le tue domande. Aiuto mi sembra un po' generico, no? Grazie.

Vediamo se ho capito il tuo problema(molto generico anche questo). Immaginiamo che tu voglia controllare la colonna A e che ogni volta che hai abc nella cella, venga cancellato il contenuto della cella della colonna B corrispondente. Questo il codice da inserire in un modulo standard:

Public Sub m()

    Dim sh As Worksheet

    Dim lRiga As Long

    Dim lng As Long

    Set sh = ThisWorkbook.Worksheets("Foglio1")

    With sh

        lRiga = .Range("A" & .Rows.Count).End(xlUp).Row

        For lng = 1 To lRiga

            If .Range("A" & lng).Value = "abc" Then

                .Range("B" & lng).Value = ""

            End If

        Next

    End With

    Set sh = Nothing

End Sub

Se non hai mai utilizzato le macro vedi qui: http://www.maurogsc.eu/excel/xlsdoveinserirecodice.aspx

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-04-08T10:45:09+00:00

    Intanto mi sento in colpa perchè nel frattempo mi sono abituato al primo, che nella attesa, nell' ordine comunque dei nanosecondi, è anche bello perchè fa scalare i numerini che ho in una cella che tiene conto di tutti i movimenti, ( il saldo di un conto corrente ), con un certo effetto.

    Quindi, io sono apposto e ti ringrazio.

    Ho provato questo nuovo.

    Si, è praticamente immediato, solo che ho notato che cancella perfettamente la colonna "F", ma indipendentemente da quello che c'è scritto sulla "H", cioè non serve "abc", che io ho rimpiazzato con "*", (e forse è proprio qua che ho fatto danno), basta che ci sia qualcosa scritto. E' possibile?

    Non impazzire che per me va bene così, chiedo solo a fine di imparare qualcosa, se avrai tempo, ecc.

    Grazie davvero!!

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-04-08T07:24:26+00:00

    Prima di tutto vorrei ringraziarti, veloce e perfetto!.

    E vero, prima ho messo tutta la domanda nel titolo, poi mi è sembrata troppo lunga e l'ho rimpiazzata per "aiuto", poi ho spiegato il mio problema abbastanza male, della serie "tanto non mi risponderà nessuno", ma vedo che hai capito benissimo perche il codice è perfetto.

    Aproffito ancora a farti una domanda riguardante il codice, prima premetto che ho rimpiazzato i valori delle colonne, al posto delle "A" o mezzo "H", e al posto della "B", la "F", perche queste sono le colonne del mio foglio, poi il valore da cercare era "*". Specifico questo perche magari incide nella eventuale risposta, alla domanda che sto per formulare.

     Come posso delimitare il range delle colonne, ad esempio da H5 ad H4300, e cosi per le altre due?, perche ho notato, e comunque va bene lo stesso, che ci mette qualche secondo in più, secondo me per via del fatto che la ricerca la fa su tutta la colonna del foglio, e a me alla fine serve soltanto che lo faccia in quel range.  Sono argentino, scusa gli errori di ortografia, Ti ringrazio ancora!!

    Il Range è già limitato. In pratica la macro trova l'ultima cella della colonna A (o H come l'hai modificata tu) e considera solo quelle celle. E' lenta perchè se hai oltre 4000 celle ci vuole il giusto tempo.

    Prova questa:

    Public Sub m()

        Dim lRiga As Long

        Dim rng As Range

        Dim c As Range

        Dim rCancella As Range

        Dim sh As Worksheet

        On Error Resume Next

        Application.ScreenUpdating = False

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        With sh

            lRiga = .Range("H" & .Rows.Count).End(xlUp).Row

            Set rng = .Range("H4:H" & lRiga)

            rng.AutoFilter Field:=1, Criteria1:="abc"

            Set rCancella = rng.SpecialCells(xlCellTypeVisible)

            For Each c In rCancella

                c.Offset(0, -2).Value = ""

            Next

            rng.AutoFilter

        End With

        Application.ScreenUpdating = True

        Set rng = Nothing

        Set rCancella = Nothing

        Set c = Nothing

        Set sh = Nothing

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-04-07T18:06:57+00:00

    Prima di tutto vorrei ringraziarti, veloce e perfetto!.

    E vero, prima ho messo tutta la domanda nel titolo, poi mi è sembrata troppo lunga e l'ho rimpiazzata per "aiuto", poi ho spiegato il mio problema abbastanza male, della serie "tanto non mi risponderà nessuno", ma vedo che hai capito benissimo perche il codice è perfetto.

    Aproffito ancora a farti una domanda riguardante il codice, prima premetto che ho rimpiazzato i valori delle colonne, al posto delle "A" o mezzo "H", e al posto della "B", la "F", perche queste sono le colonne del mio foglio, poi il valore da cercare era "*". Specifico questo perche magari incide nella eventuale risposta, alla domanda che sto per formulare.

     Come posso delimitare il range delle colonne, ad esempio da H5 ad H4300, e cosi per le altre due?, perche ho notato, e comunque va bene lo stesso, che ci mette qualche secondo in più, secondo me per via del fatto che la ricerca la fa su tutta la colonna del foglio, e a me alla fine serve soltanto che lo faccia in quel range.  Sono argentino, scusa gli errori di ortografia, Ti ringrazio ancora!!

    La risposta è stata utile?

    0 commenti Nessun commento