Risolto Sostituire la ricerca del valore di una cella con Inputbox

Claudio1950

Nuovo utente
15 Marzo 2019
14
0
1
2016
Best answers
0
Essendo poco pratico di programmazione VBA, ho vagato nel web,ed ho trovato questa macro che risolve il mio problema. Vorrei sostituire la modalità di ricerca , utilizzando la modalità data da Inputbox. Ringrazio anticipatamente.

Visual Basic:
Sub CO_Pulsante2_Click()
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("COS).UsedRange.Rows.Count
    J = Worksheets("CO").UsedRange.Rows.Count
    If J = 1 Then
    If Application.WorksheetFunction.Count(Worksheets("CO").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("COS").Range("A1:A" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "4" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("CO").Range("A40")
             J = J + 1
        End If
    Next
    Application.ScreenUpdating = True 
End Sub
 
Ultima modifica di un moderatore:

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
15.334
446
83
65
Napoli
2013
Best answers
206
C @Claudio1950

Come ti era stato detto in sede di presentazione (e siamo ancora in attesa della tua) devi allegare un file di Excel con la macro inserita e dove spieghi quello che vuoi fare.

Senza un file il codice è inutile.

Poi il codice nei post va inserito tra i TAG CODE; per come fare guarda gli avvisi dello staff (stavolta provvedo io)
 

Claudio1950

Nuovo utente
15 Marzo 2019
14
0
1
2016
Best answers
0
Grazie comunque. Evidentemente, per uno della mia età, non pratico di forum, è troppo complicato. Avevo necessità di sostituire la riga dove è inserito il numero "4" con l'istruzione INPUTBOX. Grazie, comunque, per l'attenzione accordatami.
 

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
15.334
446
83
65
Napoli
2013
Best answers
206
Ecco perchè richiediamo un file di esempio con il risultato desiderato inserito a mano.

Senza di questo si possono solo "sparare" soluzioni a caso.
 

Marco Lauria

Utente abituale
2 Gennaio 2017
317
30
28
54
Roma
www.artigianamaterassi.net
Excel 2016
Best answers
14
L'istruzione deve essere posta fuori dal ciclo For Next:

Visual Basic:
Sub Pulsante1_Click()
 Dim xRg As Range
 Dim sInp As Long
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Foglio1").UsedRange.Rows.Count
    J = Worksheets("Foglio2").UsedRange.Rows.Count
    If J = 1 Then
    If Application.WorksheetFunction.Count(Worksheets("Foglio2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Foglio1").Range("A1:A" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    sInp = Application.InputBox("Inserisci un valore", , 4)
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = sInp Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Foglio2").Range("A10")
             J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub
 

Claudio1950

Nuovo utente
15 Marzo 2019
14
0
1
2016
Best answers
0
Grazie. INserito nella mia cartella di lavoro, purtroppo, entra in un loop infinito, C'è un'altra modalità alternativa?
 

Claudio1950

Nuovo utente
15 Marzo 2019
14
0
1
2016
Best answers
0
Certamente. Anche sul mio file di esempio funziona benissimo. Trasferito nella mia cartella di lavoro, modificando il nome dei fogli di lavoro, entra in loop e blocca anche excel. Comunque grazie
 

Marco Lauria

Utente abituale
2 Gennaio 2017
317
30
28
54
Roma
www.artigianamaterassi.net
Excel 2016
Best answers
14
Perdonami ma la tua domanda era sostituire alla costante "4" un inputbox,
dove klingklang @klingklang ti ha prontamente risposto e io ho semplicemente spostato l'istruzione fuori dal loop
poi se la macro deve fare altre cose tu non lo hai domandato.....
e ribadisco: a me non va assolutamente in loop....
 

Claudio1950

Nuovo utente
15 Marzo 2019
14
0
1
2016
Best answers
0
Grazie comunque. Anche sul mio ESEMPIO funziona bene. La macro deve trovare il valore inserito e copiare la riga dove è inserito il valore da trovare.
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!