Condividi:        

Eliminare da Codice : l'ultimo numero progressivo inserito n

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Eliminare da Codice : l'ultimo numero progressivo inserito n

Postdi Maury170419 » 15/05/19 18:44

Ciao a Tutti mi chiamo Maurizio
E il mio Problema e questo :

Sul Foglio di Excel ho inserito un Pulsante che richiama la funzione di inserimento di un Numero progessivo
nella Colonna (A) ; A patto che la colonna ( B) ci sia un dato qualsiasi;
E fin qui tutto ok
Ahora quello che io vorrei tentare di fare : Sarebbe quella di avere un codice , che sappia valutare se
l'ultimo dato inserito nella colonna (B) sia uguale a "Zero" o a "Uno".
Mi spiego meglio :
1) Ho detto che se scrivo un dato qualsiasi (Numerico o Alfanumerico) che sia ; Nella Colonna (B)
Nella Colonna (A) viene inserito un numero progressivo !
2) Però al contrario sè io elimino l'ultimo dato inserito nella colonna (B) il numero che compare nella
colonna (A) continua a rimanere li al suo Posto ; Mentre io vorrei che scomparisse ; ( "" ) tutto qui.
Sembra una cosina facile da risolvere
Ma io non ci riesco .
Grazie per tutto l'aiuto che vorrete darmi in merito ; Saluti da A.Maurizio

Inserisco Link per Scaricare Il Progetto di Prova :
https://app.box.com/s/hz44r1tbu4njvyf670be9z04slgc69ph

Grazie
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Sponsor
 

Re: Eliminare da Codice : l'ultimo numero progressivo inseri

Postdi Anthony47 » 16/05/19 09:41

Non so interpretare il significato dell'intera Sub Numero_Progressivo; essa comunque contiene la riga If Foglio1.Cells(N, 2) = "" Then Exit Sub

Credo che quello che chiedi si possa ottenere sostituendo quella riga con
Codice: Seleziona tutto
    If Foglio1.Cells(N, 2) = "" Then
        Foglio1.Cells(N, 1).ClearContents
        Exit Sub
    End If

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eliminare da Codice : l'ultimo numero progressivo inseri

Postdi Maury170419 » 16/05/19 17:30

Ciao Anthony
Ascolta : ho provato questo tuo Programmino ma non funziona in tutti i sensi !
In più in questo punto
Codice: Seleziona tutto
  If Foglio1.Cells(N, 2) = "" Then


Mi viene segnalato come errore che dice : " Errore Definito dall'applicazione o dall'oggetto "
Il che non mi e nuovo : in quanto lo faceva anche con le mie modifiche
Ho anche provato ad inserire il ( Option Explicit ) dichiarando il tutto ma nulla da fare.
Grazie comunque per il tuo aiuto , Saluti da A.Maurizio
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Re: Eliminare da Codice : l'ultimo numero progressivo inseri

Postdi Anthony47 » 17/05/19 12:32

Come ti avevo detto, io non ho capito il significato della tua Sub Numero_Progressivo, la macro associate al Pulsante presente su Foglio1.
Inoltre c'e' una contraddizione nel tuo messaggio iniziale:
[Vorrei avere] un codice , che sappia valutare se
l'ultimo dato inserito nella colonna (B) sia uguale a "Zero" o a "Uno"

Ma poi, "spiegando meglio":
al contrario sè io elimino l'ultimo dato inserito nella colonna (B) il numero che compare nella
colonna (A) continua a rimanere li al suo Posto ; Mentre io vorrei che scomparisse ; ( "" ) tutto qui


La tua macro originale:
Codice: Seleziona tutto
Sub Numero_Progressivo()
X = 0
For N = 2 To 30000

    If Foglio1.Cells(N, 2) = "" Then Exit Sub               '<<<**** 1

    If Foglio1.Cells(N, 2).Value <> "" Then
        Foglio1.Cells(N, 1) = X + 1
    End If
    X = X + 1
Next N

'>>>***
'intCella = Foglio1.Range("B2").Value
'Foglio1.Range("B2").FormulaR1C1 = intCella + 1

X = ActiveCell.Range("B2").Value

If Range("B2" & X & ":B2").Value = 0 Then
    Foglio1.Cells(N, 1) = N - 1
Else
    Foglio1.Cells(N, 1) = N - 1
    Exit Sub
End If
'Call AggiungiUno
End Sub


La modifica che ti avevo proposto sostituiva l'istruzione marcata <<<*** con il blocco
Codice: Seleziona tutto
    If Foglio1.Cells(N, 2) = "" Then
        Foglio1.Cells(N, 1).ClearContents
        Exit Sub
    End If

che ha lo scopo di verificare se la Colonna B nell'ultima riga testate sia Nulla, nel qual caso cancella il contenuto di Colonna A. Questo secondo me corrisponde alla richiesta nella parte "spiegando meglio"

La seconda parte della macro (dalla riga marcata >>>*** in Avanti) non so che cosa realizza e l'ho lasciata immutata.

Nel file che hai allegato il comportamento della macro mi sembra coerente con quanto descritto, e non ho nessun errore.

Tu hai fatto le prove con il file pubblicato o con altro file? Mi puoi dare una sequenza di operazioni che a te generano errore?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eliminare da Codice : l'ultimo numero progressivo inseri

Postdi Maury170419 » 18/05/19 18:21

Ciao Anthony
Scusami se continuo a ripetermi , però sè da una parte e vero che scrivo male una parte del Titolo ; Quando mi riferisco al (Vero / Falso)
Ma non sapevo come interpretare il vostro abituale linguaggio informatico per dire semplicemente che :
Se nella colonna (B) tolgo l'ultimo dato inserito , si sarebbe dovuto togliere anche il numero della colonna (A)
Pertanto mi ricordavo che un tempo per dire cose di questo genere si faceva il Paragone con il vero o falso / Si e No o ( 1 o 0 ) Tutto qui !
Detto questo : Ti inserisco il Link delle Immagini che ti ho preparato una ad una per visualizzare nelle varie fasi , sia il mio Programmino che il tuo listato Aggiunto ; E il Risultato e il Seguente.
Questa e La Prima : Immagine
[img][img]https://i.postimg.cc/k57f8XTy/1.png[/img]

Immagine

Immagine

Immagine

Immagine

[/img]

Grazie comunque per il tuo Interessamento Sinceri Saluti e Buon Fine Settimana.
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Re: Eliminare da Codice : l'ultimo numero progressivo inseri

Postdi Anthony47 » 19/05/19 00:07

Deve esserci un equivoco; perche' nel file io avevo trovato una sola riga If Foglio1.Cells(N, 2) = "" Then Exit Sub, in testa alla Sub Numero_Progressivo; era quella l'istruzione da modificare, mentre nell'immagine vedo che hai modificato la seconda parte della macro...
Io dico:
Codice: Seleziona tutto
Sub Numero_Progressivo()
X = 0
For N = 2 To 30000

    If Foglio1.Cells(N, 2) = "" Then
        Foglio1.Cells(N, 1).ClearContents            'QUESTA E' la parte da modificare
        Exit Sub
    End If
    If Foglio1.Cells(N, 2).Value <> "" Then
        Foglio1.Cells(N, 1) = X + 1
    End If
    X = X + 1
Next N

'DA QUI IN POI NON SO A CHE SERVE................

'intCella = Foglio1.Range("B2").Value
'Foglio1.Range("B2").FormulaR1C1 = intCella + 1

X = ActiveCell.Range("B2").Value

If Range("B2" & X & ":B2").Value = 0 Then
    Foglio1.Cells(N, 1) = N - 1
Else
    Foglio1.Cells(N, 1) = N - 1
    Exit Sub
End If
'Call AggiungiUno
End Sub

Prova cosi'...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eliminare da Codice : l'ultimo numero progressivo inseri

Postdi Maury170419 » 19/05/19 18:43

Grande Come Sempre Anthony !
Ora si che funziona Alla Grande
Scusami per aver inserito cosi tante Immagini da Riempire il Post : Ma era li per li l'unica maniera per farti capire cosa succedeva a me , senza Fare tanti giri di Parole; Che potevano essere Comprensibili forse solo a me.
Goditi Questo meritato Fine settimana di riposo, te lo meriti
Grazie !!!!!!
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05


Torna a Applicazioni Office Windows


Topic correlati a "Eliminare da Codice : l'ultimo numero progressivo inserito n":


Chi c’è in linea

Visitano il forum: Nessuno e 104 ospiti