Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

se 0 inserire parola

Ultimo Aggiornamento: 14/11/2021 10:34
Post: 21
Registrato il: 18/08/2019
Età: 19
Utente Junior
un saluto
OFFLINE
13/11/2021 16:26

Ciao,
nel foglio allegato inserire la parola "aggiornamento" nella colonna F se in colonna G c'è zero.
Allego esempio.
In colonna G c'è nel foglio originale una formula che non ho allegato
grazie
frank
Post: 2.493
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
13/11/2021 16:40

ciao
non conoscendo i dati di G9
direi
=SE(E(G9=0;VAL.NUMERO(G9));"Aggiornamento";"")
Post: 21
Registrato il: 18/08/2019
Età: 19
Utente Junior
un saluto
OFFLINE
13/11/2021 17:23

Grazie federico
La formula è o.k. , purtroppo nella colonna F si inserisce una determinata parola con una macro.
Quindi penso che la soluzione sia un'altra macro selecion_change che quando è zero in G si inserisce in F "aggiornamento"
frank
Post: 2.494
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
13/11/2021 18:19

ciao
perchè?

le formule leggono i valori anche se sono
scritti con macro.
al limite scrivi la macro che la modifichiamo
facendo in modo che se il risultato è 0
in G vada ascrivere la parola che vuoi
[Modificato da federico460 13/11/2021 18:20]
Post: 22
Registrato il: 18/08/2019
Età: 19
Utente Junior
un saluto
OFFLINE
13/11/2021 19:34

Questa macro inserisce le formule in colonna

Option Explicit
Sub Macro5()
Range("F9:F28").Formula = "=IF(AND(RC[1]=0,ISNUMBER(RC[1])),""Aggiornamento"","""")"
End Sub

ma non è questo.
Ad ogni inserimento di zero in colonna in colonna G deve inserirsi "aggiornamento" senza formule in colonna F
Post: 2.495
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
13/11/2021 19:43

ciao
questa è la mia formula passata in macro

a me interessa quella che hai in colonna G

da li cin un semplice IF
si può scrivere anche in colonna F
[Modificato da federico460 13/11/2021 19:44]
Post: 2.496
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
13/11/2021 19:59

ciao
un sistema può essere

Public Sub sostituisci()
Dim Lista As Range
Set Lista = Range(Cells(9, 7), Cells(9, 7).End(xlDown))
For Each CL In Lista
If CL = 0 Then
CL.Offset(0, -1) = "Aggiornamento"
End If
Next
End Sub



ma le celle non devono essere vuote
Post: 23
Registrato il: 18/08/2019
Età: 19
Utente Junior
un saluto
OFFLINE
13/11/2021 20:43

Così si inchioda tutto

Private Sub Worksheet_Change(ByVal target As Range)
'Public Sub sostituisci()

Dim Lista As Range
Dim cl As Variant

Set Lista = Range(Cells(9, 7), Cells(9, 7).End(xlDown))

For Each cl In Lista
If cl = 0 Then
cl.Offset(0, -1) = "Aggiornamento"
End If

Next

End Sub
Post: 2.497
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
13/11/2021 21:01

ciao
a me non si inchioda niente.
ti ho chiesto la macro con cui popoli la colonna G
se non metti quella andiamo per tentativi
Post: 24
Registrato il: 18/08/2019
Età: 19
Utente Junior
un saluto
OFFLINE
13/11/2021 21:57

Anche senza altre macro qui si inchioda

Qui mi dà spazio dello stack esaurito

If cl = 0 Then
cl.Offset(0, -1) = "Aggiornamento"
End If '<<<<<<<<<

Next
[Modificato da franc.ciccio 13/11/2021 22:05]
Post: 2.498
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
13/11/2021 22:09

ciao

scrivi sulla colonna G

NB non funzione se in g il risultato deriva da formula


oppure puoi usare

Sub prova()
Dim i As Long, ur As Long
ur = Cells(Rows.Count, 7).End(xlUp).Row
For i = 9 To ur
If Cells(i, 7) = 0 And Cells(i, 7) <> "" Then
Cells(i, 6) = "Aggiornamento"
End If
Next i
End Sub

[Modificato da federico460 13/11/2021 22:20]
Post: 25
Registrato il: 18/08/2019
Età: 19
Utente Junior
un saluto
OFFLINE
13/11/2021 22:38

Grazie fede.
La macro funziona, ma purtroppo nel file originale c'è una formula nella colonna G
= SE(H10;H10-H9;"")
e quindi come hai detto non funziona.
Non mi lascia caricare xlsm ma solo xlsx-xls.
Il file ora è con macro xls
Post: 2.499
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
13/11/2021 23:08

in H
li scrivi a mano?

scrivi così

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("G9:G100").Precedents) Is Nothing Then

Call sostituisci

End If




End Sub
[Modificato da federico460 13/11/2021 23:11]
Post: 6.595
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
14/11/2021 08:41

Ciao Questa macro dovrebbe funzionare

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, d

If Not Intersect(Target, Range("G9:G100")) Is Nothing Then
  r = Target.Row: c = Target.Column: d = Target
  If d = 0 Then Cells(r, c - 1) = "Aggiornamento"
End If
End Sub


però dici che lo 0zero in colonna G proviene da una formula, mi scrivi la formula che si trova in colonna "G", perche al limite lo "Change" dell'evento deve controllare cosa modifica la formula.

in quanto la variazione del valore determinato da una formula non scatena l'evento Change per inserire "Aggiornamento"

Ciao By Sal (8-D

P.S. rileggendo i Post vedo che la cella in G deriva ancora da un altra formula in colonna "H", a questo punto credo che basti usare solo "Change" senza riferimento come ti ha suggerito Federico che saluto, con la macro "Sostituisci", in questo modo qualsiasi modifica venga fatta sul foglio va a controllare sempre se nella colonna "G" ci sia qualche 0zero.

tranne se le formule per il cambiamento della colonna "G" non siano collegate alla modifica di un valore su un altro foglio, allora l'evento "Change" non dovrà partire dal foglio della colonna "G" ma dal modulo "Generale" "Thisworkbook" oppure "Questo foglio di lavoro".

bye bye


[Modificato da by sal 14/11/2021 08:53]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 2.500
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
14/11/2021 10:34

ciao
by sal

io ho usato ...precedents

nel caso del file in questione
se inserisce il dato in H
si attiva la macro.
Ho usato Call per non dover gestire gli offset()



Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 21:59. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com