Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro Trova cancella e trasla

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

Macro Trova cancella e trasla

Postdi Statix » 03/02/10 00:33

Ciao a tutti,
avrei bisogno di una macro che mi trova i 5 numeri del range E4:I4
nel Range E6:I23 (tabella 1)
esempio come tabella 2
e li trasla eliminando le celle vuote e inserisce il range(E4:I4) in fondo
esempio come tabella 3

Immagine
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Sponsor
 

Re: Macro Trova cancella e trasla

Postdi Anthony47 » 03/02/10 01:51

Si fa con un For Each Cella1 in Range("la prima tabella") / Next Cella1, all' interno del loop controlli se Cella1 esiste in E14:I14 [con Application.WorksheetFunction.Countif(Cella1,Range("E14:I14")] e se no esegue il secondo Loop For Each Cella2 in range("La terza tabella") / Next Cella2, con l' operazione Cella2=Cella1
Non ho pero' ora il tempo per collaudare.

In ogni caso pero' non mi e' chiaro che fare quando hai esaurito le celle di tabella1, perche' il caso che hai disegnato in cui mancano esattamente 5 celle che prendi da E14:I14 e' assolutamente ipotetico: che fare se mancano solo 2 celle, o se invece ne mancano 8?

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: Macro Trova cancella e trasla

Postdi Flash30005 » 03/02/10 10:33

Anthony ha scritto:che fare quando hai esaurito le celle di tabella1, perche' il caso che hai disegnato in cui mancano esattamente 5 celle che prendi da E14:I14 e' assolutamente ipotetico: che fare se mancano solo 2 celle, o se invece ne mancano 8?


E' la stessa domanda che avrei voluto fare io
Comunque pubblico una macro che fa quanto richiesto ma funziona solo in situazioni simili alla tabella riportata
Codice: Seleziona tutto
Sub TrovaTrasla()
For CCn = 5 To 9
    NumI = Cells(4, CCn).Value
    For RRT = 6 To 23
    For CCT = 5 To 9
        If Cells(RRT, CCT).Value = NumI Or Cells(RRT, CCT).Value = "" Then
            ValN = Cells(RRT, CCT + 1)
            If Cells(RRT, CCT).Value = NumI Then Nt = Nt + 1
            Cells(RRT, CCT + 1).Clear
            If CCT = 9 Then
                ValN = Cells(RRT + 1, 5).Value
                Cells(RRT + 1, 5).Clear
            End If
            Cells(RRT, CCT).Value = ValN
        End If
    Next CCT
    Next RRT
        Cells(RRT - 1, CCT - 1).Value = NumI
Next CCn
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Trova cancella e trasla

Postdi Statix » 03/02/10 10:41

Ciao Anthony47,
forse non mi sono spiegato bene,
la tabella è una sola cioè la Tabella 1,
le tabelle 2 e 3 sono dimostrative,
le ho messe per evidenziare il lavoro che deve fare la macro,
quindi la tabella 1 dopo il lavoro della macro deve essere identica alla tabella 3,
le celle che vengono cancellate sono sempre 5 ,
gli spazi vuoti vengono sostituiti dalle altre celle adiacenti e i fondo rimarrano 5 celle vuote
che verranno riempite dal range E4:I4.
Quindi riassumendo,la macro nella Tabella 1 deve trovare i 5 numeri del range E4:I4 ,cancellarli,
compattare le celle cioè eliminare le celle vuote e accodare in fondo i 5 numeri del range E4:I4.
come tabella 3.
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Macro Trova cancella e trasla

Postdi Flash30005 » 03/02/10 10:53

Statix,
se è come dici la macro postata qui sopra dovrebbe andare bene
(abbiamo inviato il messaggio quasi contemporaneamente)

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Trova cancella e trasla

Postdi Statix » 03/02/10 11:14

Ciao Flaah30005,
la macro è perfetta,però non ho capito perche mi toglie le formattazioni,
cioè mi elimina i bordi e i formati.
dalla prima cella che trova e cancella.
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Macro Trova cancella e trasla

Postdi Statix » 03/02/10 11:22

volevo chiederti un altra cosa,
come fare a prendere i 5 numeri dalla tabella e visualizzarli nel range sopra come l'esempio.
Immagine
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Macro Trova cancella e trasla

Postdi Flash30005 » 03/02/10 11:24

Perché c'è la funzione .Clear se la cambi in .ClearContents
cancellerai il contenuto e non la formattazione
sostituisci, quindi, la funzione come riportato nelle righe evidenziate

Codice: Seleziona tutto
           
...
If Cells(RRT, CCT).Value = NumI Then Nt = Nt + 1
            Cells(RRT, CCT + 1).ClearContents  '<<<<<<<<<<< qui
            If CCT = 9 Then
                ValN = Cells(RRT + 1, 5).Value
                Cells(RRT + 1, 5).ClearContents  '<<<<<<<<<<< qui
            End If
...


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Trova cancella e trasla

Postdi Flash30005 » 03/02/10 11:28

Statix ha scritto:volevo chiederti un altra cosa,
come fare a prendere i 5 numeri dalla tabella e visualizzarli nel range sopra come l'esempio.



Ma vorresti creare un'altra tabella con solo i 5 numeri che processi?
e dove dovrebbe essere posizionata?

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Trova cancella e trasla

Postdi Statix » 03/02/10 11:45

In un'altra tabella , foto precedente,
ricavo 5 numeri che si dispongono casualmente nella tabella e io
li vorrei evidenziare nel range sopra.
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Macro Trova cancella e trasla

Postdi Flash30005 » 03/02/10 11:51

Crea una macro così
Codice: Seleziona tutto
Sub Trascrivi()
For CCn = 5 To 9
    NumI = Cells(4, CCn).Value
    For RRT = 6 To 23
    For CCT = 5 To 9
             If Cells(RRT, CCT).Value = NumI Then Cells(RRT, CCT + 6).Value = NumI
    Next CCT
    Next RRT
Next CCn
End Sub

i 6 contenuto in questa riga di codice
Codice: Seleziona tutto
If Cells(RRT, CCT).Value = NumI Then Cells(RRT, CCT + 6).Value = NumI

significa che crea la tabella a fianco della tabella processata (aumentando questo valore "allontani" le due tabelle)
poi la richiami prima dell'avvio dell'altra che sarà così
Codice: Seleziona tutto
Sub TrovaTrasla2()
Call Trascrivi   '<<<<<<<<< chiamata macro trascrivi
For CCn = 5 To 9
    NumI = Cells(4, CCn).Value
    For RRT = 6 To 23
    For CCT = 5 To 9
        If Cells(RRT, CCT).Value = NumI Or Cells(RRT, CCT).Value = "" Then
            ValN = Cells(RRT, CCT + 1)
            Cells(RRT, CCT + 1).ClearContents
            If CCT = 9 Then
                ValN = Cells(RRT + 1, 5).Value
                Cells(RRT + 1, 5).ClearContents
            End If
            Cells(RRT, CCT).Value = ValN

        End If
    Next CCT
    Next RRT
        Cells(RRT - 1, CCT - 1).Value = NumI
Next CCn
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Trova cancella e trasla

Postdi Statix » 03/02/10 12:07

Ciao Flash30005 la macro per la prima tabella è tutto ok.
Per il secondo quesito.questa è una tabella a parte.
Ho provato le macro è funzionano,però la trovo un pò macchinosa,
le celle vengono visualizzate in basso,c'è un alto metodo più semplice?
ti allego una nuova foto esempio.
nella tabella ho i 5 numeri disposti a caso.
la macro prende il 1° numero 4 e lo trascrive
nella 1° cella in alto,poi il 2°numero 5 e cosi via.
Immagine
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Macro Trova cancella e trasla

Postdi Flash30005 » 03/02/10 13:04

Ma scusa Statix
la macro trascrive 6 solonne più a destra il numero che trova e quindi avrai la tabella sfalsata di 6 colonne con i soli numeri che ti interessano.
In effetti ho riprodotto il primo esempio (del secondo quesito) come tu l'hai spiegato.
Con questa nuova tabella che presenti non capisco la posizione dei numeri rispetto alla tabella originale.

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Trova cancella e trasla

Postdi Statix » 03/02/10 14:14

Ciao Flash30005,
ti allego la foto,
come vedi la macro mi scrive di fianco la tabella i numeri in più
me li scrive anche in fondo la tabella,
quello che vorrei e che la macro non mi deve scrivere niente di fianco alla tabella
tantomeno riscrivermi i numeri in fondo.
La macro deve solo riportarmi i numeri che stanno dentro la tabella nel range E4:I4 che stà sopra la tabella.
Immagine
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Macro Trova cancella e trasla

Postdi Flash30005 » 03/02/10 14:26

Perdonami Static ma nel primo quesito volevi i numeri in fondo come da tuo esempio
Statix ha scritto:e li trasla eliminando le celle vuote e inserisce il range(E4:I4) in fondo
esempio come tabella 3

Immagine

e la prima macro soddisfa questa esigenza

Poi nel secondo quesito chiedi che vengano riportati quei numeri come da tuo secondo esempio
Statix ha scritto:volevo chiederti un altra cosa,
come fare a prendere i 5 numeri dalla tabella e visualizzarli nel range sopra come l'esempio.
Immagine


Qui non specifichi quali numeri prendere e ho realizzato la seconda macro che fa vedere (in una fantomatica tabella sfalsata di 6 colonne) dove erano posizionati i numeri di E4:I4 prima che essi vengano sostituiti.

Ora se la tua richiesta è diversa vorrei capire quali sono le specifiche che sono sempre date da:
1) dati origine
2) criterio
3) dati finali
Cosa che manca nell'esporre il secondo quesito

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Trova cancella e trasla

Postdi Statix » 03/02/10 14:38

Ok forse mi sono espresso male,lasciamo stare la macro della prima tabella quella è ok e perfetta.
ricominciamo da capo,
Ho in un altro foglio ,una nuova tabella ,allego foto,
in questa tabella ci sono 5 numeri,
la macro deve riportarmi questi 5 numeri in questo Range E4:I4 come la foto 2
Immagine
Immagine
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Macro Trova cancella e trasla

Postdi Flash30005 » 03/02/10 14:48

Ok allora
Per quest'ultimo esempio avvia questa macro

Codice: Seleziona tutto
Sub TrascriviRev()
CCn = 5
    For RRT = 6 To 23
    For CCT = 5 To 9
             If Cells(RRT, CCT).Value <> "" Then
                NumI = Cells(RRT, CCT).Value
                Cells(4, CCn).Value = NumI
                CCn = CCn + 1
             End If
    Next CCT
    Next RRT
End Sub


Le celle non contenenti i numeri devono essere completamente vuote

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Trova cancella e trasla

Postdi Statix » 03/02/10 14:51

Ciao Flash30005,
alla grande,tutto ok,
ti ringrazio immensamente
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Macro Trova cancella e trasla

Postdi Flash30005 » 03/02/10 14:53

;)
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro Trova cancella e trasla

Postdi Statix » 03/02/10 20:37

Ciao Flash30005,
mi ero dimenticato di dirti,volendo cambiare i riferimenti della tabella,
in quanto quelli postati mi serviva solo come esempio,
credevo di farcela ma ho avuto qualche problemino ad applicarli
mi spieghi un pò la macro.
Statix
Windows 7,
Office 2010,
Statix
Utente Senior
 
Post: 1078
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Macro Trova cancella e trasla":


Chi c’è in linea

Visitano il forum: Anthony47 e 9 ospiti