ema.cab
00lunedì 20 febbraio 2017 23:21
SALVE
avrei un problemino,
vorrei riuscire a copiare un determinato numero di celle in un'altra
colonna , mi spiego:
in range "H:" andranno inseriti dei numeri random, in cella "F4" insero il numero di valori da copiare (dall'alto verso il basso) da range "H:" ed incollarli inrange "I:",
TENENDO PRENSETE CHE IN range "H:" verranno sempre aggiunti dei numeri, e ad osgni aggiornamento andranno sempre e solo copiati gli ultimi.
allego file
ema.cab
00lunedì 20 febbraio 2017 23:27
allego file
dodo47
00martedì 21 febbraio 2017 08:38
Ciao
ma nel range "I" i numeri vanno aggiunti oppure va cancellato il range ed inseriti quelli voluti?
Nel secondo caso,
dopo aver inserito i numeri in colonna H digita la quantità da copiare in F4
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F4")) Is Nothing Then
Application.EnableEvents = False
ur1 = Range("I" & Rows.Count).End(xlUp).Row
If ur1 > 3 Then Range("I4:I" & ur1).ClearContents
ur = Range("H" & Rows.Count).End(xlUp).Row
n = Target.Value
Range("H" & ur - n + 1 & ":H" & ur).Copy Range("I4")
Application.EnableEvents = True
End If
End Sub
saluti
ema.cab
00martedì 21 febbraio 2017 09:24
CIAO dodo47
sembra perfetta.
si nel range "I" vanno cancellati ed aggiunti nuovi...
grazie mille ora lo testo..
ema.cab
00martedì 21 febbraio 2017 09:36
ciao DODO
SENTI, e' possibile far copiare i valori ogni qual volta si aggiunge un numero in range "H"?
MI SPIEGO,
in "f4" metto la quantita' di num. da copiare , in "h" invece andrenno man mano AGGIUNTI dei numeri (random), quidi mi servirebbe che ogni qual volta appunto si aggiunge un numero la macro aggiorna e copia gli ultimi
grazie
ema.cab
00martedì 21 febbraio 2017 11:18
ciao dodo
credo di aver risolto cosi'
allego file .
pensi possa endare bene , o ci sarebbe qualcosa di piu' sobrio?
federico460
00martedì 21 febbraio 2017 15:06
Ciao
io cambierei
così
Private Sub Worksheet_Change(ByVal Target As Range)
Dim n
If Not Intersect(Target, Range("H4:H31,F4")) Is Nothing Then
Application.EnableEvents = False
n = Range("H" & Rows.Count).End(xlUp).Row
If n <> "" Then Call Macro4
End If
Application.EnableEvents = True
End Sub
altrimenti sai che lavoro ogni volta che scrivo su una cella
mi va alla colonna H
al limite
If Not Intersect(Target, Range("F4")) Is Nothing Then
cosi posso scrivere sulla colonna H e poi decidere i numeri
ma non so quale delle due ti serve
in formulese
in I4
=SCARTO($H4;CONTA.SE($H$4:$H$31;"<>"&"")-$F$4;0)
se non vuoi vedere 0
=SE(SCARTO($H4;CONTA.SE($H$4:$H$31;"<>"&"")-$F$4;0)=0;"";SCARTO($H4;CONTA.SE($H$4:$H$31;"<>"&"")-$F$4;0))
ema.cab
00martedì 21 febbraio 2017 17:06
GRAZIE federico460
decisamente meglio,
una curiosita' "da dilettante"
nella riga di codice
If ur1 > 3 Then Range("I4:I" & ur1).ClearContents
quel tre "3" cosa sta a significare?
la terza riga?
federico460
00martedì 21 febbraio 2017 17:48
ciao
Ema
sai una cosa non ne ho la più pallida idea
io per curiosità l'ho levato e mi funziona lo stesso
ma sicuramente un'utilità ce l'ha
magari a cancellare solo se l'ultima riga della colonna I
scritta è superiore a 3 ?
ur1 = Range("I" & Rows.Count).End(xlUp).Row
If ur1 > 3 Then Range("I4:I" &
ur1).ClearContents
ho notato ce se metti zero o ""
in f4
resta sempre un numero
vedo se riesco a levarlo
o almeno ci provo sono piuttosto arrugginito
con il vba
ema.cab
00mercoledì 22 febbraio 2017 22:56
ciao mi servirebbe un altro favorino,
e possibile riuscire a fare:
nei numeri random che vanno ad aggiungersi "MAN MANO" c'e' la possibilita che si ripetano all'interno del range che scelgo con "F4"
ESS: SCELGO 6 NUMERI da copiare, ed esce 4 ,67, 3, 9, 3, 10
in questo caso e uscito due volte il tre "3",
vorrei che non venisse ripetuto ma passasse direttamente all'altro numero
abbiamo 4 ,67, 3, 9, 3, 10 esce un altro numero 15
e mi diventa 4 ,67, 3, 9, 10, 15
cosi facendo mi elimina quel tre "3" di troppo ,
spero di essermi spiegato
grazie
ema.cab
00giovedì 23 febbraio 2017 16:57
CHI puo' darmi una mano?