Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Sostituzione righe di una colonna con righe di altra colonna

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

Sostituzione righe di una colonna con righe di altra colonna

Postdi l00p » 08/07/17 13:41

Ciao a tutti, avrei bisogno del vostro aiuto...

Ho 2 colonne così fatte:

Colonna 1:
indice_1
valore_errato_1 <-----
testo_1

indice_2
valore_errato_2 <----------
testo_2
indice_3
valore_errato_3 <---------------
testo_3


Colonna 2:
valore_corretto_1 <-----
valore_corretto_2 <----------
valore_corretto_3 <---------------

Ciò che mi serve, come si può facilmente intuire, è mettere il valore corretto nella relativa cella, ovvero il valore_corretto_1 al posto del valore_errato_1 e così via.
Sapreste indicarmi come fare?
Grazie.
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Sponsor
 

Re: Sostituzione righe di una colonna con righe di altra col

Postdi patel » 08/07/17 15:36

allega un link ad un file di esempio con i dati ed il risultato desiderato
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Sostituzione righe di una colonna con righe di altra col

Postdi l00p » 08/07/17 15:55

In pratica devo sostituire dei tempi in un file di sottotitoli.
Ogni riga è contenuta in una singola cella.

Ciò che ho:

Colonna 1
1
00:00:06,240 --> 00:00:11,560
testo qualsiasi
( riga vuota )

2
00:01:13,040 --> 00:01:14,480
testo qualsiasi
( riga vuota )

3
00:17:05,840 --> 00:17:10,360
testo qualsiasi
( riga vuota )


Colonna 2
00:00:04,740 --> 00:00:10,060
00:01:11,540 --> 00:01:12,980
00:17:04,340 --> 00:17:08,860


Ciò che voglio ottenere:

Colonna 3:
1
00:00:04,740 --> 00:00:10,060
testo qualsiasi
( riga vuota )

2
00:01:11,540 --> 00:01:12,980
testo qualsiasi
( riga vuota )

3
00:17:04,340 --> 00:17:08,860
testo qualsiasi
( riga vuota )


Spero di essermi spiegato ;)

Allego un'immagine:

Immagine
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Re: Sostituzione righe di una colonna con righe di altra col

Postdi patel » 08/07/17 17:16

ho chiesto un file, non immagini su cui non posso fare test
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Sostituzione righe di una colonna con righe di altra col

Postdi l00p » 08/07/17 18:28

Ciao, pensavo non fossi stato chiaro nella spiegazione.
Qui trovi un esempio.
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Re: Sostituzione righe di una colonna con righe di altra col

Postdi patel » 08/07/17 21:59

Codice: Seleziona tutto
Sub a()
LR = Cells(Rows.Count, "B").End(xlUp).Row
For r = 4 To LR
  Cells((r - 3) * 4, "A") = Cells(r, "B")
Next
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Sostituzione righe di una colonna con righe di altra col

Postdi l00p » 08/07/17 22:47

Intanto grazie 1000 per l'aiuto.
Vista la mia incompetenza con excel, il codice che hai scritto come lo devo usare? :oops:
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Re: Sostituzione righe di una colonna con righe di altra col

Postdi Anthony47 » 09/07/17 01:33

Io ho una domanda: ma per ogni blocco di informazioni in colonna A c'e' il tempo "corretto" in colonna B, vero?

Per l'uso della macro suggerita da patel, partendo da Excel:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato

Poi torna su Excel e quando i dati di colonna B sono pronti lancia la macro "a":
-premi Alt-F8
-seleziona "a" dall'elenco di macro disponibili
-premi Esegui
Il file andra' salvato poi in formato .xlsm (macro enabled)

Attenzione che la macro mette i valori di colonna B direttamente in colonna A; se vuoi invece creare i dati "aggiustati" in colonna C mantenendo integri quelli di colonna A allora potresti usare questa versione:
Codice: Seleziona tutto
Sub CC()
'macro by patel modificata
Range("C3").Resize(Rows.Count - 10, 1).ClearContents
Range(Range("A3"), Cells(Rows.Count, 1).End(xlUp)).Copy Range("C3")
'
LR = Cells(Rows.Count, "B").End(xlUp).Row
For r = 4 To LR
  Cells((r - 3) * 4, "C") = Cells(r, "B")
Next
End Sub


In pratica prima copio la colonna A in C e poi la macro di patel "lavora" su colonna C.

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

Re: Sostituzione righe di una colonna con righe di altra col

Postdi l00p » 09/07/17 10:34

Anthony47 ha scritto:Io ho una domanda: ma per ogni blocco di informazioni in colonna A c'e' il tempo "corretto" in colonna B, vero?

Sì, esatto.

Grazie ad entrambi per l'aiuto che mi avete dato.
Appena ho un minuto provo subito le macro suggeritemi.
Vi tengo aggiornati.
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Re: Sostituzione righe di una colonna con righe di altra col

Postdi l00p » 09/07/17 13:14

Ok, ragazzi, ho fatto un paio di prove e mi sembra si adatti a quello che ho io.

Sub CC()
Range("C3").Resize(Rows.Count - 10, 1).ClearContents
Range(Range("A3"), Cells(Rows.Count, 1).End(xlUp)).Copy Range("C3")
LR = Cells(Rows.Count, "B").End(xlUp).Row
For r = 4 To LR
Cells((r - 3) * 4, "C") = Cells(r, "B")
Next
End Sub

Modificando il valore in rosso riesco ad ottenere i valori in una colonna scelta da me.
Ho provato anche ad aggiungere altri valori nelle colonne 1 e 2 ed ottengo ancora una terza colonna corretta.

Mi date quindi la conferma che il valore in rosso è l'unico su cui mettere mano se, partendo dall'esempio su cui avete lavorato, decido di aggiungere altri dati alle prime due colonne?

Grazie ancora per l'aiuto, avrei impiegato mesi altrimenti.
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Re: Sostituzione righe di una colonna con righe di altra col

Postdi Anthony47 » 09/07/17 22:37

Si, modificando quei parametri puoi modificare la colonna di output
Avatar utente
Anthony47
Moderatore
 
Post: 17870
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Sostituzione righe di una colonna con righe di altra col

Postdi l00p » 29/07/17 19:57

Ciao, avrei un'altra domanda...

Se volessi fare in modo che il codice facesse lo stesso lavoro che fa attualmente, ma indipendentemente dalle righe di testo?

Metto un file di esempio (il numero di righe del testo è variabile casualmente).

Grazie!
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Re: Sostituzione righe di una colonna con righe di altra col

Postdi Anthony47 » 01/08/17 00:14

Il file di esempio non risulta piu' scaricabile.
E approfittane per descrivere pienamente la richiesta, senza aspettarti che chi ha (poco) tempo per aiutarti vada a leggere cosa dicevi in passato per interpretare il presente.

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

Re: Sostituzione righe di una colonna con righe di altra col

Postdi l00p » 01/08/17 02:38

Ciao, rimetto il file: Cliccami

Ho bisogno di trasformare un file con queste caratteristiche:

1
00:00:04,234 --> 00:00:06,453
testo su una riga
(riga vuota)
2
00:00:06,221 --> 00:00:07,889
testo su
due righe
(riga vuota)

Il risultato deve essere un file come il precedente ma con i tempi corretti e presi da un file così fatto:

00:00:05,284 --> 00:00:07,153
00:00:07,931 --> 00:00:08,801

Devo ottenere quindi:

1
00:00:05,284 --> 00:00:07,153
testo su una riga
(riga vuota)
2
00:00:07,931 --> 00:00:08,801
testo su
due righe
(riga vuota)

Da notare che le righe di testo possono essere casuali, cioè su una riga o più righe senza alcuna regola, ripetizione o altro.
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Re: Sostituzione righe di una colonna con righe di altra col

Postdi l00p » 01/08/17 11:29

Piccola nota.
Mi sono espresso male: il file è unico (come quello che ho messo in condivisione); ho praticamente due clonne: una con i testi e i tempi da correggere e una colonna con solo i tempi corretti. Mi serve quindi creare una terza colonna con testi presi dalla prima colonna e tempi corretti presi dalla seconda colonna.
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Re: Sostituzione righe di una colonna con righe di altra col

Postdi Anthony47 » 01/08/17 14:46

Prova con questa:
Codice: Seleziona tutto
Sub falsifica()
Dim startRep As String, colDest As String, I As Long, J As Long
'
startRep = "B4"     '<<< Inizio elenco sostituzioni
colDest = "C"       '<<< Colonna col risultato
'
Columns(colDest).ClearContents    '***Vedi Testo
'
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If IsDate(Left(Cells(I, 1), 8)) Then
        Cells(I, colDest) = Range(startRep).Offset(J, 0)
        J = J + 1
    Else
        Cells(I, colDest) = Cells(I, 1)
    End If
Next I
End Sub
Le istruzioni marcate <<< sono da personalizzare come da commento.
Nota che la colonna di destinazione SARA' AZZERATA senza preavviso all'avvio della macro; se la cosa non e' compatibile con la tua struttura di foglio allora elimina l'istruzione marcata ***

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

Re: Sostituzione righe di una colonna con righe di altra col

Postdi l00p » 01/08/17 20:23

Grazie infinite!!!
Funziona alla grande.
Domanda da novellino......... le macro si possono creare anche con altri tipi di linguaggio (java, javascript...)?
l00p
Utente Junior
 
Post: 10
Iscritto il: 08/07/17 13:26

Re: Sostituzione righe di una colonna con righe di altra col

Postdi Anthony47 » 01/08/17 22:13

Le macro si scrivono in linguaggio VBA; dal codice vba si possono eseguire script in altri linguaggi, ma non e' mia materia quindi non so dire di piu'.

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


Torna a Applicazioni Office Windows


Topic correlati a "Sostituzione righe di una colonna con righe di altra colonna":


Chi c’è in linea

Visitano il forum: papiriof e 17 ospiti