Condividi:        

Excell allineare righe uguali contenute in colonne diverse

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

Excell allineare righe uguali contenute in colonne diverse

Postdi cedro » 13/09/17 11:10

Ciao a tutti. Mi sono iscritto "ufficialmente" oggi anche se vi leggo da tantissimo tempo traendo spunto e ho trovato spesso soluzioni a varie problematiche adattandole alle soluzioni proposte.

Ho letto alcune discussioni simili alla problematica che vorrei risolvere ma, nonostante vari tentativi, non sono riuscito a trovare una soluzione idonea ed ho bisogno del vostro prezioso aiuto.
Sto creando un archivio di partite di calcio con relative quote proposte da due bookmakers che vorrei confrontare per poi osservarne le differenze. Con la macro "aggiorna" dal sito web nowgoal.com importo i dati che mi servono in excel sullo stesso foglio affiancandoli nelle colonne necessarie: il primo bookmakers "Pinnacle" nelle colonne da "A" a "L" ed il secondo bookmakers nelle colonne da "N" ad "Y", Poi eseguo in sequenza le macro "ordina" per ridimensionare le colonne in maniera visibile e visualizzare solo quelle che mi interessano e "trova" in modo da trasformare i punti in virgole nei numeri, ottenendo questo risultato:

Immagine

Come si vede i dati però non sono "allineati" ed avrei necessità di averli sulle stesse righe in modo che i due gruppi di colonne da "A - L" ed "N - Y" fossero esattamente uguali. Devo quindi eliminare le righe nelle colonne "N - Y" che non sono presenti in "A - L", operazione che adesso faccio manualmente da tastiera digitando Ctrl + il tasto - e dal menù a tendina che si apre "sposta celle in alto":

Immagine

in questo caso ho eliminato manualmente le celle nelle righe N10:N11 per allineare le righe. L'operazione successiva sarelle l'eliminazione delle righe nell'intervallo da N14:N23 perchè la successiva riga uguale a A12:A13 si trova in N24:25.

Oltre a questo però capita anche che le righe sono uguali ma non in ordine:

Immagine

e di conseguenza vanno allineate per ottenere questo risultato (che riesco a fare a mano e vorrei riuscire ad automatizzare):

Immagine

L'ideale sarebbe l'ideale sarebbe riuscire ad allineare tutte le righe uguali (i dati cambiano solo ovviamente nelle quote) eliminando automaticamente tutte le celle nelle colonne da N - Y che non hanno corrispondenza di riga con le colonne in A - L .
Grazie 1000 sin da ora a chi mi potrà dare quale utile aiuto o suggerimento.
cedro
Newbie
 
Post: 6
Iscritto il: 13/09/17 09:07

Sponsor
 

Re: Excell allineare righe uguali contenute in colonne diver

Postdi Anthony47 » 13/09/17 12:47

Ciao cedro, benvenuto nel forum.
Direi che senza un file di esempio, contenenti i dati reali su cui lavorare, si puo' solo dire"Si, e' possibile".

Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

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

Re: Excell allineare righe uguali contenute in colonne diver

Postdi cedro » 14/09/17 17:20

Giustamente .. non ci avevo pensato, scusatemi.

https://www.mediafire.com/file/371kfd3mtzy88rv/PF+Tecnico_1.xlsm
cedro
Newbie
 
Post: 6
Iscritto il: 13/09/17 09:07

Re: Excell allineare righe uguali contenute in colonne diver

Postdi Anthony47 » 15/09/17 01:44

Allora, inserisci nel tuo file un foglio aggiuntivo e chiamalo ALLINEA
Poi inserisci in un Modulo standard del vba questa macro:
Codice: Seleziona tutto
Sub MAllinea()
Dim I As Long, myMatch, cHome As String, myNext As Long
'
Sheets("Foglio11").Select
Sheets("ALLINEA").Range("A:Z").Clear
Range("A3:Z3").Copy Sheets("ALLINEA").Range("A2")
For I = 4 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(I, 1) <> "" Then
        cHome = Cells(I, 3).Value
        myMatch = Application.Match(cHome, Range("P1:P10000"), 0)
        If Not IsError(myMatch) Then
            myNext = Sheets("ALLINEA").Cells(Rows.Count, "D").End(xlUp).MergeArea.Row + 1
            Cells(I, 1).Resize(2, 12).Copy Sheets("ALLINEA").Cells(myNext, 1)
            Cells(myMatch, "N").Resize(2, 12).Copy Sheets("ALLINEA").Cells(myNext, "N")
        End If
    End If
Next I
For I = 1 To 30
    Sheets("ALLINEA").Columns(I).ColumnWidth = Columns(I).ColumnWidth
Next I
End Sub

All'occorrenza eseguila: ti posizionera' su Allinea i match presenti in ambedue i gruppi, allineati.
NB: Le colonne A:Z nel foglio ALLINEA vengono azzerate senza preavviso all'avvio della macro

Eventualmente puoi inserirla in coda a una delle tue macro (non ho capito quale e' la sequenza giusta); ti basta mettere, subito prima di End Sub, l'istruzione
Codice: Seleziona tutto
Call MAllinea


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

Re: Excell allineare righe uguali contenute in colonne diver

Postdi cedro » 15/09/17 09:10

Ciao Anthony.
Innanzi tutto grazie infinite per il prezioso supporto.
Ho inserito la MAllinea nel nuovo foglio e la relativa chiamata nella macro "trova" nel foglio11 che è l'ultima della sequenza.
All'esecuzione processa correttamente le prime due righe poi trova un intoppo imputabile alle celle unite che non riesco a capire:

Immagine

Rimetto il file con le modifiche fatte e con i dati non allineati:

https://www.mediafire.com/file/5ncuqd45czq5wbb/PF+Tecnico_1.xlsm
cedro
Newbie
 
Post: 6
Iscritto il: 13/09/17 09:07

Re: Excell allineare righe uguali contenute in colonne diver

Postdi alfrimpa » 15/09/17 11:42

Le celle unite vanno spesso in conflitto con il VBA; prova ad eliminarle e a rieseguire la macro.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Excell allineare righe uguali contenute in colonne diver

Postdi cedro » 15/09/17 12:09

alfrimpa ha scritto:Le celle unite vanno spesso in conflitto con il VBA; prova ad eliminarle e a rieseguire la macro.


No, facendo così da errore nella riga successiva ...
cedro
Newbie
 
Post: 6
Iscritto il: 13/09/17 09:07

Re: Excell allineare righe uguali contenute in colonne diver

Postdi Anthony47 » 15/09/17 14:55

Odio anche io le celle unite, ma purtroppo questo layout e' importato cosi' da un sito web...
Ho modificato questa parte, sperando che la colonna League sia sempre compilata:
Codice: Seleziona tutto
        If Not IsError(myMatch) Then
            myNext = Sheets("ALLINEA").Cells(Rows.Count, "A").End(xlUp).MergeArea.Row + 2   '<<< MODIFICATA

Inoltre e' bene inserire un messaggio sul completamento:
Codice: Seleziona tutto
Next I
MsgBox ("Foglio Allinea è stato compilato...")              '<<< AGGIUNTO MESSAGGIO
End Sub

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

Re: Excell allineare righe uguali contenute in colonne diver

Postdi cedro » 15/09/17 15:42

Grazie Anthony adesso provo questa modifica e ti do conferma.

Comunque da un ulteriore prova il conflitto si crea nel momento in cui nell'area tra le colonne "D-J" e tra le colonne "Q-W", dove sono contenute i valori relativi alle quote delle partite, vi sono delle celle vuote. Può capitare che sono vuote perchè la prima riga è riferita alle quote di apertura mentre la seconda evidenzia le eventuali variazioni ed aggiustamenti che si verificano durante la raccolta delle scommesse prima dell'evento e nella pagina web da dove vengono importati i dati, quando non ci sono stati incrementi o decrementi, rimangono vuote:

Immagine

Siccome per la mia analisi la seconda riga è ininfluente, per avere la controprova che l'inconveniente si genera da queste celle vuote ho provato a riempirle copiando ed incollando i dati della cella superiore, che ovviamente sono dello stesso incontro.
Fatta questa operazione la macro funziona egregiamente.
Per farla funzionare alla perfezione quindi prima delle operazioni di confronto ed allineamento bisognerebbe "riempire" tutte le righe vuote con i dati contenuti nelle superiori, o al massimo con il valore zero (0.00) in sostituzione della corrispondente cella vuota.
cedro
Newbie
 
Post: 6
Iscritto il: 13/09/17 09:07

Re: Excell allineare righe uguali contenute in colonne diver

Postdi cedro » 15/09/17 15:49

Fatta la modifica che hai proposto funziona a meraviglia !!!! :D :D :D
Grazie .. grazie .. grazie .. grazie .. grazie.. grazie .. grazie.. grazie .. grazie .. infinite volte grazie Anthony
cedro
Newbie
 
Post: 6
Iscritto il: 13/09/17 09:07


Torna a Applicazioni Office Windows


Topic correlati a "Excell allineare righe uguali contenute in colonne diverse":


Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti