Condividi tramite

Ricercare in una colonna la prima cella vuota.

Anonimo
2021-06-30T05:11:07+00:00

Ciao,
nell'intervallo di celle C19:C10000 ci sono dei valori che vengono fuori da formule.
Tramite un pulsante vorrei cercare nella suddetta colonna la prima cella vuota che si presenta e scrivere una "×" sulla stessa riga della colonna AD.
Ad esempio l'ultimo valore si trova nella cella C35, al click del pulsante mi deve scrivere la "x" nella cella AD35.
Naturalmente se nella colonna C non ci sono dati, al click del pulsante mi deve scrivere la "x" in AD19.

Vladimiro

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

5 risposte

Ordina per: Più utili
  1. Anonimo
    2021-06-30T20:00:43+00:00

    Ciao Vladimiro,

    purtroppo c'è qualcosa che non va:

    Immagine

    Come puoi vedere la "x" viene posizionata sull'ultima riga con valore, mentre io ho bisogno di averla alla successiva cella vuota.

    Nell'esempio in alto in AD23.

    OK, sono stato tratto in inganno dalla dichiarazione:

    Ad esempio l'ultimo valore si trova nella cella C35, al click del pulsante mi deve scrivere la "x" nella cella AD35.

    Prova a sostituire il codice con questa versione:

    '========>>

    Option Explicit

    '-------->>

    Public Sub Tester()

    Dim srcRng As Range 
    
    Dim arrIn As Variant 
    
    Dim i As Long, j As Long 
    
    Const iPrimaRiga As Long = 19 
    
    Const iUltimaRiga As Long = 10000 
    
    Const sColonna\_Dati As String = "C" 
    
    Const sColonna\_x As String = "AD" 
    
    With ActiveSheet 
    
        Set srcRng = .Columns(sColonna\_Dati).Resize(iUltimaRiga - iPrimaRiga + 1).Offset(iPrimaRiga - 1) 
    
        arrIn = srcRng.Value 
    
        For i = UBound(arrIn) To 1 Step -1 
    
            If arrIn(i, 1) <> vbNullString Then 
    
                Exit For 
    
            End If 
    
        Next i          
    
        Intersect(srcRng.Cells(i + 1).EntireRow, .Columns(sColonna\_x)).Value = "x" 
    
    End With 
    

    End Sub

    '<<========

    Potresti scaricare il mio file di prova Vladimiro20210630.xlsm

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2021-06-30T21:18:51+00:00

    Ciao Vladimiro,

    adesso va bene.

    Grazie mille e alla prossima,

    Ti ringrazio per il cortese riscontro.

    Alla prossima.

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2021-06-30T21:14:22+00:00

    Ciao Vladimiro,

    purtroppo c'è qualcosa che non va:

    Immagine

    Come puoi vedere la "x" viene posizionata sull'ultima riga con valore, mentre io ho bisogno di averla alla successiva cella vuota.

    Nell'esempio in alto in AD23.

    OK, sono stato tratto in inganno dalla dichiarazione:

    Ad esempio l'ultimo valore si trova nella cella C35, al click del pulsante mi deve scrivere la "x" nella cella AD35.

    Prova a sostituire il codice con questa versione:

    '========>>

    Option Explicit

    '-------->>

    Public Sub Tester()

    Dim srcRng As Range

    Dim arrIn As Variant

    Dim i As Long, j As Long

    Const iPrimaRiga As Long = 19

    Const iUltimaRiga As Long = 10000

    Const sColonna_Dati As String = "C"

    Const sColonna_x As String = "AD"

    With ActiveSheet

    Set srcRng = .Columns(sColonna_Dati).Resize(iUltimaRiga - iPrimaRiga + 1).Offset(iPrimaRiga - 1)

    arrIn = srcRng.Value

    For i = UBound(arrIn) To 1 Step -1

    If arrIn(i, 1) <> vbNullString Then

    Exit For

    End If

    Next i

    Intersect(srcRng.Cells(i + 1).EntireRow, .Columns(sColonna_x)).Value = "x"

    End With

    End Sub

    '<<========

    Potresti scaricare il mio file di prova Vladimiro20210630.xlsm

    ===

    Regards,

    Norman

    Immagine

    Ciao Norman,

    adesso va bene.

    Grazie mille e alla prossima,

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2021-06-30T19:06:24+00:00

    Ciao Vladimiro,

    nell'intervallo di celle C19:C10000 ci sono dei valori che vengono fuori da formule.
    Tramite un pulsante vorrei cercare nella suddetta colonna la prima cella vuota che si presenta e scrivere una "×" sulla stessa riga della colonna AD.
    Ad esempio l'ultimo valore si trova nella cella C35, al click del pulsante mi deve scrivere la "x" nella cella AD35.
    Naturalmente se nella colonna C non ci sono dati, al click del pulsante mi deve scrivere la "x" in AD19.

    Prova qualcosa del genere:

    '========>>

    Option Explicit

    '-------->>

    Public Sub Tester()

    Dim srcRng As Range

    Dim arrIn As Variant

    Dim i As Long, j As Long

    Const iPrimaRiga As Long = 19

    Const iUltimaRiga As Long = 10000

    Const sColonna_Dati As String = "C"

    Const sColonna_x As String = "AD"

    With ActiveSheet

    Set srcRng = .Columns(sColonna_Dati).Resize(iUltimaRiga - iPrimaRiga + 1).Offset(iPrimaRiga - 1)

    arrIn = srcRng.Value

    For i = UBound(arrIn) To 1 Step -1

    If arrIn(i, 1) <> vbNullString Then

    Exit For

    End If

    Next i

    j = Application.Max(i, 1)

    Intersect(srcRng.Cells(j).EntireRow, .Columns(sColonna_x)).Value = "x"

    End With

    End Sub

    '<<========

    ===

    Regards,

    Norman

    Immagine

    Ciao Norman,

    purtroppo c'è qualcosa che non va:

    Come puoi vedere la "x" viene posizionata sull'ultima riga con valore, mentre io ho bisogno di averla alla successiva cella vuota.

    Nell'esempio in alto in AD23.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2021-06-30T07:06:27+00:00

    Ciao Vladimiro,

    nell'intervallo di celle C19:C10000 ci sono dei valori che vengono fuori da formule.
    Tramite un pulsante vorrei cercare nella suddetta colonna la prima cella vuota che si presenta e scrivere una "×" sulla stessa riga della colonna AD.
    Ad esempio l'ultimo valore si trova nella cella C35, al click del pulsante mi deve scrivere la "x" nella cella AD35.
    Naturalmente se nella colonna C non ci sono dati, al click del pulsante mi deve scrivere la "x" in AD19.

    Prova qualcosa del genere:

    '========>>

    Option Explicit

    '-------->>

    Public Sub Tester()

    Dim srcRng As Range
    
    Dim arrIn As Variant 
    
    Dim i As Long, j As Long 
    
    Const iPrimaRiga As Long = **19** 
    
    Const iUltimaRiga As Long = **10000** 
    
    Const sColonna\_Dati As String = **"C"** 
    
    Const sColonna\_x As String = **"AD"** 
    
    With ActiveSheet 
    
        Set srcRng = .Columns(sColonna\_Dati).Resize(iUltimaRiga - iPrimaRiga + 1).Offset(iPrimaRiga - 1) 
    
        arrIn = srcRng.Value 
    
        For i = UBound(arrIn) To 1 Step -1 
    
            If arrIn(i, 1) &lt;&gt; vbNullString Then 
    
                Exit For 
    
            End If 
    
        Next i 
    
        j = Application.Max(i, 1) 
    
        Intersect(srcRng.Cells(j).EntireRow, .Columns(sColonna\_x)).Value = "x" 
    
    End With 
    

    End Sub

    '<<========

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento