cercare nome in range di colonne variabili e applicare formula

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
mb63
00martedì 11 maggio 2021 11:20
bungiorno

io ho fatto un'operazione in cui se in colonna J trova la parola pippo prosegue e fa altro.

poi ho la stessa sub applicata alla colonne M.

nel file che sto utilizzando ho accodato le due sub per arrivare al risultato finale e va bene

qualcuno mi sa dire come devo correggere invece il file per vedere se riesco a fare il tutto con una sub unica

quindi la sub dovrebbe fare se nell'area variabile colonne J ed M trovi la parola pippo procedi con la moltiplicazione

Spero di essere stato chiaro

mb63
00martedì 11 maggio 2021 11:26
Scusate ma è molto che non scrivo e non ricome mettere il codice dentro il tag



ur = Range("j" & Rows.Count).End(xlUp).Row ' conta le righe
For r = 1 To ur
If Foglio1.Range("j1", "m" & r).Value = "pippo" Then


in pratica per iniziare avrei bisogno di una correzione/spiegazione sulla riga IF Fogli che non è scritta in modo corretto

grazie
ABCDEF@Excel
10martedì 11 maggio 2021 18:02
>>>If Range("j1", "m" & r) = "pippo" Then
Non può controllare diverse celle insieme, poi se ci fosse "pippo" in J3 e pure in M3?
Crei una sub per la colonna J e una per la M, dopo le accodi una dopo l'altra.

Ci fossero tante righe..., userei un'altro metodo con FIND
Sub pippo2()
Dim Ur As Long, y As Long, x As Long, N As Long, Rr As Long
Dim Ob As Object
If Range("J" & Rows.Count).End(xlUp).Row >= Range("M" & Rows.Count).End(xlUp).Row Then Ur _
= Range("J" & Rows.Count).End(xlUp).Row Else Ur = Range("M" & Rows.Count).End(xlUp).Row
    For y = 10 To 13 Step 3
        N = Application.WorksheetFunction.CountIf(Range(Cells(1, y), Cells(Ur, y)), "pippo")
        Set Ob = Range(Cells(1, y), Cells(Ur, y)).Find("pippo", After:=Cells(1, y), SearchDirection:=xlNext)
        For x = 1 To N
            Rr = Ob.Row
            Cells(Rr + 3, y) = Cells(Rr + 1, y) * 5
            Cells(Rr + 3, y).Font.ColorIndex = 3
            Set Ob = Range(Cells(Rr, y), Cells(Ur, y)).FindNext
        Next x
    Next y
Set Ob = Nothing
MsgBox "Fatto"
End Sub
mb63
00martedì 11 maggio 2021 18:13
gentilissimo

io avevo fatto come suggerito accondando le due sub per la colonna J e la colonna M, ma non essendo un espertissimo di VBA pensavo fosse un mio limite

Grazie per la disponibilità

Alla prossima e buona serata

Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 17:00.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com