Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

controllo celle

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

controllo celle

Postdi nicola_na78 » 16/04/13 08:20

Ciao Amici ho un foglio excel dove nella colonna A devo inserire delle date che delle volte si ripetono per es. dal rigo 10 al 20.
ho realizzato una macro che fa il seguente compito anziche' fare copia incolla delle date dal rigo 10 al rigo 20 mi posiziono nell'ultimo rigo con la stessa data da inserire in questo caso rigo 20 e con una macro a retroso mi completa il lavoro fino al rigo 10. la macro in questione è la seguente:

For i = posizione To 6 Step -1
If Cells(i, colonna) = "" Then
Cells(i, colonna) = Miocopia
End If
Next

il problema è con questo codice la macro mi riempie tutte le celle vuote se per esempio il rigo 5 non ha data e nn voglio che venga compilato la macro riempie anche questo....
come posso fare affinchè la macro si ferma nel primo intervallo di celle vuote in questo caso tra 20 e 10 e non vada oltre???
grazie a tutti
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Sponsor
 

Re: controllo celle

Postdi ricky53 » 16/04/13 10:29

Ciao,
al volo prova con
Codice: Seleziona tutto
    For i = posizione To 6 Step -1
        If Cells(i, colonna) <> "" Then ' <<==== Aggiunta
            Exit For ' <<==== Aggiunta
        End If ' <<==== Aggiunta
        If Cells(i, colonna) = "" Then
            Cells(i, colonna) = miocopia
        End If
    Next
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: controllo celle

Postdi nicola_na78 » 16/04/13 11:06

Ciao Ricky grazie per aver risposto ma nn funziona......
qualcos'altro??

Grazie a presto

Win xp
Office 2007
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Re: controllo celle

Postdi ricky53 » 16/04/13 11:23

Ciao,
non funziona è poco ed equivale a dire nulla.

Cosa ottieni?
La modifica al tuo codice, che ti ho proposto, quando (nell'intervallo "posizione" e riga 6) trova una cella, della colonna "A", con un dato termina l'elaborazione.
Tu in
... come posso fare affinchè la macro si ferma nel primo intervallo di celle vuote in questo caso tra 20 e 10 e non vada oltre???
così avevi fatto capire.

Se le esigenze sono diverse ... parliamone e si risolverà.

Esempio se il tuo limite inferiore è "10" allora, nel codice
Codice: Seleziona tutto
For i = posizione To 6 Step -1

cambia "6" con "10"
Codice: Seleziona tutto
For i = posizione To 10 Step -1
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: controllo celle

Postdi nicola_na78 » 16/04/13 11:44

Ciao Ricky,
inserendo il codice che mi hai suggerito quando lancio la macro non succede nulla non compila nemmeno le celle vuote.
ho cambiato da 6 a 50
Codice: Seleziona tutto
For i = posizione To 6 Step -1

ma nn succede nulla

ho la colonna B chiamata "data" dove io inserisco le date che mi vengono giornalmente inviate
quindi es cella 1 = 01/01/2013
cella 2 = 02/02/2013
cella 3 = ""
cella 4 = 01/03/2013
da cella 5 a cella 10 = 15/04/2013
quando mi capita il caso da cella 5 a cella 10, mi posiziono sull'ultima cella in questo caso la 10 digito la data = 15/04/2013 e poi faccio partire la macro.... il problema è che mi ma a scrivere anche nella cella 3 che deve essere vuota....

Grazie ancora. ciao
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Re: controllo celle

Postdi ricky53 » 16/04/13 12:18

Ciao,
dovresti inviare la macro completa e ... un tuo file di esempio (ATTENZIONE: senza dati RISERVATI) altrimenti non si riesce a risolvere.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: controllo celle

Postdi nicola_na78 » 16/04/13 13:00

Codice: Seleziona tutto
Sub Macro_CopiaA()
'
'
'Scelta rapida da tastiera: CTRL+a

colonna = ActiveCell.Column

If colonna = 2 Or colonna = 6 Then
    Miocopia = Left(ActiveCell.Value, 2) & Mid(ActiveCell.Value, 4, 2) & Right(ActiveCell.Value, 2)
    posizione = Right((ActiveCell.Address), 2)
For i = posizione To 6 Step -1
    If Cells(i, colonna) = "" Then
       Cells(i, colonna) = Miocopia
    End If
Next
End If
End Sub

ecco il cod. completo
grazie
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Re: controllo celle

Postdi ricky53 » 16/04/13 13:19

Ciao,
se puoi inviare un'immagine dei dati e ... non ci fare prove su dati inseriti da noi con il rischio che non ...



Rileggendo una tua frase
il problema è che mi ma a scrivere anche nella cella 3 che deve essere vuota...

Mi chiedo ma come è possibile visto che il tuo ciclo esce per i = 6
Vedi quanto segue
Codice: Seleziona tutto
For i = posizione To 6 Step -1


Altra cosa
Codice: Seleziona tutto
posizione = Right((ActiveCell.Address), 2)
è un modo errato per estrarre il numero della riga in cui ti sei posizionato.
Primo ottieni una stringa
Secondo se la riga è minore di 10 ... ottieni un errore



Ecco quello esatto
Codice: Seleziona tutto
posizione = ActiveCell.Row
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: controllo celle

Postdi nicola_na78 » 16/04/13 14:44

non so come si allegano le immagini se premo sul pulsante img mi da:
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Re: controllo celle

Postdi nicola_na78 » 16/04/13 14:45

---
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Re: controllo celle

Postdi ricky53 » 16/04/13 15:53

Ciao,
click sul pulsante "Img" e poi, all'interno dei due "Img", devi inserire il link del sito ove hai caricato la tua immagine.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: controllo celle

Postdi nicola_na78 » 16/04/13 16:33

ciao ricky53 ce l'ho fatta ho caricato l'immagine...
Immagine
io vorrei fare la seguente cosa:
dovrei realizzare una macro che posizionandomi nel rigo B13 eseguo la macro e compila la cella B12 e B11 con lo stesso valore della cella B13...
la macro che tio ho postato prima cioè
Codice: Seleziona tutto
sub copia()
colonna = ActiveCell.Column

If colonna = 2 Or colonna = 6 Then
On Error Resume Next
    Miocopia = Left(ActiveCell.Value, 2) & Mid(ActiveCell.Value, 4, 2) & Right(ActiveCell.Value, 2)
    posizione = Right((ActiveCell.Address), 2)
For i = 6 To posizione
    If Cells(i, colonna) = "" Then
       Cells(i, colonna) = Miocopia
    End If
Next
End If
End Sub

funziona solo che mi va a scrivere anche sulla cella B9 la quale dovrebbe rimanere vuota....

come posso fare...
grazie x la tua pazienza
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Re: controllo celle

Postdi ricky53 » 16/04/13 17:25

Ciao,
hai cambiato il ciclo For/Next.
Ti avevo dato un consiglio sulla variabile "posizione ma ...

Prova in questo modo
Codice: Seleziona tutto
Sub copia()
    colonna = ActiveCell.Column

    If colonna = 2 Or colonna = 6 Then
        On Error Resume Next
        Miocopia = Left(ActiveCell.Value, 2) & Mid(ActiveCell.Value, 4, 2) & Right(ActiveCell.Value, 2)
        posizione = ActiveCell.Row ' <<=== Modificata
        For i = posizione To 6 Step -1
            If Cells(i, colonna) <> "" And i < posizione Then ' <<==== Aggiunta
                Exit For ' <<==== Aggiunta
            End If ' <<==== Aggiunta
            If Cells(i, colonna) = "" Then
                Cells(i, colonna) = Miocopia
            End If
        Next
    End If
End Sub



Domanda: perchè imposti in quel modo la variabile "Miocopia" ?
Tu hai scritto
compila la cella B12 e B11 con lo stesso valore della cella B13...
ma con la variabile "Miocopia" impostata così non ottieni il risultato atteso !

Io avrei utilizzato
Codice: Seleziona tutto
Miocopia = ActiveCell.Value
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: controllo celle

Postdi nicola_na78 » 16/04/13 18:25

Ciao Ricky
miocopia la imposto in quel modo perche' nelle celle della colonna b c'è una macro che si attiva sul change che mi converte una data inserita col seguente formato 010113 in 01/01/2013
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Re: controllo celle

Postdi ricky53 » 16/04/13 20:03

Ciao,
però devi dire tutto quello che hai come codice altrimenti ...

Per capire: risolto SI/NO ?

Se "NO" devi inviare il codice che hai nella "Worksheet_Change"
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: controllo celle

Postdi Anthony47 » 16/04/13 21:23

Vedi messaggio di Ricky, sopra.
io vorrei fare la seguente cosa:
dovrei realizzare una macro che posizionandomi nel rigo B13 eseguo la macro e compila la cella B12 e B11 con lo stesso valore della cella B13...

Scusa, ma quello che chiedi non te lo faceva gia' la Sub retrofill (vedi viewtopic.php?p=569644#p569431)

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: controllo celle

Postdi nicola_na78 » 17/04/13 08:08

Grazie ricky è perfetta.... un abbraccio alla prossima
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Re: controllo celle

Postdi nicola_na78 » 17/04/13 08:08

.
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26

Re: controllo celle

Postdi Anthony47 » 17/04/13 14:27

Cioe' "No"?
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: controllo celle

Postdi nicola_na78 » 17/04/13 18:43

Ciao anthony,
La macro che mi hai postato tu é perfetta come sempre....
Grazie anche a te
Un abbraccio
nicola_na78
Utente Senior
 
Post: 147
Iscritto il: 11/06/10 15:26


Torna a Applicazioni Office Windows


Topic correlati a "controllo celle":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti