Condividi:        

macro per creare /spostare contenuto di 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

macro per creare /spostare contenuto di celle

Postdi abadan » 23/04/13 15:11

Piccolo problema al quale giro intorno ma non riesco a risolvere... CHI MI PUO' AIUTARE?

ho delle colonne

E F G H I J
COD. DES ORE COD. DES ORE
W612 TrNOc 16 W014 GGlav 20
W003 Strto 4,5 W002 Orela 160
W001 Orete 160

DEVO CREARE UNA MACRO CHE MI CREI N. RIGHE QUANTI SONO LE RIGHE PRESENTI NELLE COLONNE H - I- J (se popolate) e successivamente spostare il contenuto di tali colonne rispettivamente nelle colonne E - F - G. Vi riporto di seguito il risultato finale:

E F G
COD. DES ORE
W612 TrNOc 16
W003 Strto 4,5
W001 Orete 160
W014 GGlav 20
W002 Orela 160

chi si prende a cuore il mio caso??

grazie in aticipo
abadan
Utente Junior
 
Post: 15
Iscritto il: 23/04/13 14:47

Sponsor
 

Re: macro per creare /spostare contenuto di celle

Postdi Anthony47 » 23/04/13 16:26

Ciao abadan, benvenuto nel forum.
La riga di intestazioni e' la 1, e i dati cominciano dalla 2?

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

Re: macro per creare /spostare contenuto di celle

Postdi abadan » 23/04/13 21:41

confermo!!
una precisazione i dati presenti nelle colonne da E a J si riferiscono ad uno stesso nominativo e dove i dati a cui fanno riferimento sono presenti nelle colonne A B C D riga 2 (la riga 3 e 4 delle stesse colonne sono vuote) la macro deve ciclare.... deve ripartire dalla prima cella compilata (Ax)
abadan
Utente Junior
 
Post: 15
Iscritto il: 23/04/13 14:47

Re: macro per creare /spostare contenuto di celle

Postdi abadan » 23/04/13 21:43

grazie 1000
abadan
Utente Junior
 
Post: 15
Iscritto il: 23/04/13 14:47

Re: macro per creare /spostare contenuto di celle

Postdi Anthony47 » 23/04/13 22:34

Con questa precisazione mi sono "sconfuso". L' interpretazione piu' attendibile che mi sono dato e' che in colonna H-I-J possano esserci piu' gruppi di informazioni da accodare a quanto presente in col E-F-G; tipo un gruppo su righe 2-3-4 da inserire dopo la riga 5 e un altro gruppo inizialmente su righe 7-8-9-10, poi scivolate di 3 righe piu' in basso quindi in 9-10-11, da inserire dopo la riga 12.
Tuttavia questa interpretazione non collima con tutte le precisazioni, quindi immagino sia sbagliata.

Ti chiederei quindi di pubblicare due screenshot da cui si vede un esempio di dati iniziali, che tengano anche conto della precisazione, e come gli stessi dati vanno riposizionati. Per come pubblicare uno screenshot guarda qui: viewtopic.php?f=26&t=80395#p466013

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

Re: macro per creare /spostare contenuto di celle

Postdi abadan » 24/04/13 10:14

Spero di aver capito la procedura di inserimento delle immagini

PRIMA
Immagine


DOPO
Immagine

Grazie 1000....speriamo bene......sono fiduciosa!!!!!
abadan
Utente Junior
 
Post: 15
Iscritto il: 23/04/13 14:47

Re: macro per creare /spostare contenuto di celle

Postdi ricky53 » 24/04/13 10:54

Ciao,
le immagini non si vedono.
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. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: macro per creare /spostare contenuto di celle

Postdi abadan » 24/04/13 11:58

PRIMA
Immagine

DOPO
Immagine
abadan
Utente Junior
 
Post: 15
Iscritto il: 23/04/13 14:47

Re: macro per creare /spostare contenuto di celle

Postdi ricky53 » 24/04/13 12:12

Ciao,
premesso che questa struttura dati NON si presta ad alcuna elaborazione ed è VALIDA solo per visualizzazioni e stampe !

Preferisco non proporti nulla perchè prima preferisco verificare bene sia la tua esigenza sia come hai organizzato i dati nel tuo file.

A tal fine ecco una prima domanda: i dati sono effettivamente così oppure sono frutto di una precedente elaborazione e, quindi, hai un altro intervallo che li contiene in altra struttura?

La tua effettiva esigenza è solo questa
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. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: macro per creare /spostare contenuto di celle

Postdi abadan » 24/04/13 12:51

1 quesito:il print che vedi nella prima immagine è quello originario
è il risultato di un export che mi comunicano non sia modificabile
2 quesito: successivamente a tale passaggio lancio una macro che riempie i campi vuoti
abadan
Utente Junior
 
Post: 15
Iscritto il: 23/04/13 14:47

Re: macro per creare /spostare contenuto di celle

Postdi ricky53 » 24/04/13 13:50

Fai i complimenti a chi ti invia l'export.
Con la sua competenza gestionale fa di tutto per rendere complicata la vita agli altri (a te in questo caso).

Puoi inviare la macro che utilizzi.
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. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: macro per creare /spostare contenuto di celle

Postdi Anthony47 » 24/04/13 14:00

Io suggerirei una macro di questo tipo:
Codice: Seleziona tutto
Sub abadan()
Dim mySheet As String, myLastE As Long, I As Long, myNext As Long
'
mySheet = "Foglio4"    '<<< Il foglio contenente i tuoi dati
'
Sheets(mySheet).Copy After:=Sheets(Worksheets.Count)
myLastE = Cells(Rows.Count, "E").End(xlUp).Row
myNext = 2
Do
Cells(myNext, 1).Select
myNext = ActiveCell.End(xlDown).Row
If myNext > myLastE Then myNext = myLastE + 1
For I = ActiveCell.Row To myNext - 1
    If I <= myLastE Then
        If Cells(I, "H") <> "" Then
                Rows(myNext).Insert Shift:=xlDown
                Cells(myNext, "E").Resize(1, 3).Value = Cells(I, "H").Resize(1, 3).Value
                myNext = myNext + 1: myLastE = myLastE + 1
        End If
    End If
Next I
If myNext >= myLastE Then Exit Do
Loop
Range("H:J").ClearContents
End Sub
Essa crea una copia del foglio contenente i tuoi dati e poi fa il riarrangiamento che mi sembra sia richiesto.
Da Excel:
-Alt-F11 per aprire l' editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e lo incolli nel frame di dx
-personalizza l' istruzione marcata <<<
Torna su excel e lancia la macro abadan: Alt-F8, selezioni la macro dall' elenco che ti propone, premi Esegui

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

Re: macro per creare /spostare contenuto di celle

Postdi ricky53 » 24/04/13 14:17

Ciao,
come sempre Anthony non si smentisce nelle sue soluzioni: potenti ed argute.
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. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: macro per creare /spostare contenuto di celle

Postdi abadan » 24/04/13 14:26

ecco la macro che lancerei successivamente a questa:


Dim i, j, ultimariga As Long

On Error GoTo fine

ultimariga = 30000
j = 1
For i = 1 To ultimariga

If Range("A" & i) = "" And Range("B" & i) = "" And Range("C" & i) = "" And Range("D" & i) = "" And Range("E" & i) = "" And Range("F" & i) = "" And Range("G" & i) = "" And Range("H" & i) = "" Then Exit For

If Range("A" & i) = "" Then Sheets(1).Range("A" & i) = Range("A" & i - 1)
If Range("B" & i) = "" Then Sheets(1).Range("B" & i) = Range("B" & i - 1)
If Range("C" & i) = "" Then Sheets(1).Range("C" & i) = Range("C" & i - 1)
If Range("D" & i) = "" Then Sheets(1).Range("D" & i) = Range("D" & i - 1)
If Range("E" & i) = "" Then Sheets(1).Range("E" & i) = Range("E" & i - 1)
If Range("F" & i) = "" Then Sheets(1).Range("F" & i) = Range("F" & i - 1)
If Range("G" & i) = "" Then Sheets(1).Range("G" & i) = Range("G" & i - 1)
If Range("H" & i) = "" Then Sheets(1).Range("H" & i) = Range("H" & i - 1)
If Range("I" & i) = "" Then Sheets(1).Range("I" & i) = Range("I" & i - 1)
If Range("J" & i) = "" Then Sheets(1).Range("J" & i) = Range("J" & i - 1)


j = j + 1
Next i

ActiveWorkbook.Save

MsgBox "Operazione completata con successo!", vbInformation

Exit Sub

fine:

MsgBox "Errore: " & Err.Description, vbCritical
abadan
Utente Junior
 
Post: 15
Iscritto il: 23/04/13 14:47

Re: macro per creare /spostare contenuto di celle

Postdi Anthony47 » 26/04/13 13:03

Ma il problema originale e' poi stato risolto o no?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "macro per creare /spostare contenuto di celle":


Chi c’è in linea

Visitano il forum: Nessuno e 32 ospiti