Condividi:        

Allineare valori delle celle 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

Allineare valori delle celle in colonne diverse

Postdi lucapedrani » 08/11/19 12:53

Buongiorno a tutti, sono nuovo del forum e spero di non sbagliare nulla :) .
Da tutta la mattinata sto cercando sul forum problemi analoghi al mio ma ogni volta che eseguo una macro qualcosa va storto.
Ho un file contenente nella colonna A i codici degli articoli (in ordine crescente) con la relativa descrizione, per esempio "185715 - nome del prodotto", nella colonna B le quantità vendute nel 2018 e nella C le quantità vendute nel 2019. La colonna D invece è costituita sempre dai codici articoli con relativa descrizione in ordine crescente di codice articolo ma sono meno di quelli della colonna A perchè rappresentano solo gli articoli che ho fisicamente in magazzino, dunque nella colonna A potrei avere un codice che nella colonna D non è presente (perchè a magazzino non ne ho). Quello che dovrei ottenere è lo spostamento delle celle nella colonna D in corrispondenza della riga che nella colonna A contiene lo stesso valore (stesso prodotto). La cella D nello spostamento dovrà "portarsi dietro" anche i corrispondenti valori presenti nelle colonne E,F e G. In pratica ho due elenchi uguali, uno completo e l'altro con dei "buchi", devo riuscire ad allineare i due elenchi in modo che su una stessa riga ci siano le informazioni riguardanti lo stesso prodotto. Allego un file esempio dove nel primo foglio c'è la situazione attuale e nel secondo quella che vorrei ottenere. Grazie in anticipo :)
https://we.tl/t-PU8lsLqAQU
lucapedrani
Newbie
 
Post: 2
Iscritto il: 08/11/19 11:56

Sponsor
 

Re: Allineare valori delle celle in colonne diverse

Postdi Anthony47 » 08/11/19 15:23

Intanto Benvenuto nel forum...

Prova con questa macro:
Codice: Seleziona tutto
Sub SortAlign()
Dim BCol As String, SCol As String
Dim bArr, sArr(), LastB As Long, LastS As Long
Dim myMatch, I As Long
'
BCol = "A"
SCol = "D:G"
'
Sheets("Foglio1").Copy After:=Sheets(Sheets.Count)
LastB = Range(BCol & "10000").End(xlUp).Row
LastS = Range(SCol).Range("A10000").End(xlUp).Row
sArr = Application.Intersect(Range(SCol), Rows("1:" & LastS)).Value
Range(SCol).ClearContents
For I = 1 To UBound(sArr)
    myMatch = Application.Match(sArr(I, 1), Range(BCol & "1:" & BCol & LastB), False)
    If I = 1 Then myMatch = 1
    If Not IsError(myMatch) Then
        For j = 1 To UBound(sArr, 2)
            Range(SCol).Cells(myMatch, j) = sArr(I, j)
        Next j
    End If
Next I
MsgBox ("Completato...")
End Sub

Va messa in un "Modulo standard" del tuo vba.
Lanciando la Sub SortAlign verra' creato un nuovo foglio con i dati di partenza, poi le colonne D:G vengono riposizionate secondo il contenuto di colonna 1.

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

Re: Allineare valori delle celle in colonne diverse

Postdi lucapedrani » 08/11/19 15:47

Grazie mille per la rapida risoluzione al problema. Ha funzionato perfettamente, grazie ancora
lucapedrani
Newbie
 
Post: 2
Iscritto il: 08/11/19 11:56


Torna a Applicazioni Office Windows


Topic correlati a "Allineare valori delle celle in colonne diverse":


Chi c’è in linea

Visitano il forum: Nessuno e 52 ospiti