Condividi:        

[Excel] Filtrare da Fg1 a Fg2 in base a 1 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

Re: [Excel] Filtrare da Fg1 a Fg2 in base a 1 colonna

Postdi Flash30005 » 19/11/10 23:58

Inserisci queste due macro in un modulo nuovo (Modulo3) oppure usa il Modulo2 ma togli la riga di codice esistente in quanto non utilizzata

Codice: Seleziona tutto
Public RRA, URAF As Integer, ValC As String
Sub CompilaArmatura()
URA = Worksheets("Armatura").Range("G" & Rows.Count).End(xlUp).Row
URF = Worksheets("File txt").Range("F" & Rows.Count).End(xlUp).Row
URAF = Worksheets("Archivio Ferri").Range("C" & Rows.Count).End(xlUp).Row
Worksheets("Armatura").Range("F12:F108").Delete Shift:=xlUp
MValC = ""
For RRA = 13 To URA
    ValC = Worksheets("Armatura").Range("G" & RRA).Value
    If ValC = "" Then
        PrV = 0
        GoTo SaltaRRA
    End If
    For RRF = 3 To URF
        ValF = Worksheets("File Txt").Range("F" & RRF).Value
        ValFE = Worksheets("File Txt").Range("E" & RRF).Value
        ValFB = Worksheets("File Txt").Range("B" & RRF).Value
        If ValF = "" Then GoTo SaltaRRF
        If ValC = ValF Then
            Tr = 0
            If PrV = 0 Then
                Righe = Worksheets("Armatura").Range("G" & RRA).CurrentRegion.Rows.Count
                IniR = RRA
                PrV = 1
                Worksheets("Armatura").Range("B" & IniR & ":D" & IniR - 1 + Righe).ClearContents
            End If
            For RRFC = IniR To IniR - 1 + Righe
                ValCC = Worksheets("Armatura").Range("C" & RRFC).Value
                ValCD = Worksheets("Armatura").Range("D" & RRFC).Value
                If ValCC = ValFE And ValCD = ValFB Then Tr = 1
            Next RRFC
        End If
        If ValC = ValF And Tr = 0 Then
            Worksheets("Armatura").Range("B" & RRA).Value = Worksheets("File Txt").Range("D" & RRF).Value
            Worksheets("Armatura").Range("C" & RRA).Value = Worksheets("File Txt").Range("E" & RRF).Value
            Worksheets("Armatura").Range("D" & RRA).Value = Worksheets("File Txt").Range("B" & RRF).Value
            Call ComFerri
GoTo SaltaRRA
        End If
SaltaRRF:
    Next RRF
SaltaRRA:
Next RRA
End Sub

Private Sub ComFerri()
For RAF = 3 To URAF
    ValAF = Worksheets("Archivio Ferri").Range("C" & RAF).Value
    If ValAF = "" Then GoTo SaltaRAF
    If ValC = ValAF Then
        Worksheets("Archivio Ferri").Range("B" & RAF).Copy Destination:=Worksheets("Armatura").Range("F" & RRA)
        Exit Sub
    End If
SaltaRAF:
Next RAF
End Sub


e avvia CompilaArmatura

La macro non fa uso di UserForm, quindi puoi eliminarlo, elimina anche il codice nel foglio Armature (Worksheet_BeforeDoubleClick) e il modulo2, se non l'hai utilizzato per questa macro

La tabella "T" non viene compilata solo perché nei dati non esiste questo codice

Fai sapere se tutto ok
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Sponsor
 

Re: [Excel] Filtrare da Fg1 a Fg2 in base a 1 colonna

Postdi Zoro76 » 22/11/10 11:46

Grazie mille Flash per il tempo che mi stai dedicando.
Ho fatto delle prove e la macro funziona in parte in base alle mie necessità. Nel senso che i dati che ho nel foglio FILE_txt devo cmq riportarli manualmente. Il discorso che avevo iniziato era di portare e compilare in automatico le tabelle del foglio Armature in base al txt. La macro fa molto bene il lavoro di portare i dati del foglio Archivio ma non è la mia priorità. Il foglio txt non è sempre uguale. Mi cambia praticamente sempre ogni volta che carico un file e quindi devo sempre inserire o eliminare righe in maniera manuale.
La tua macro praticamente guarda se nel foglio Armature nella colonna G c'è una lettera e se c'è copia i ferri. Giusto?
Zoro76
Utente Senior
 
Post: 107
Iscritto il: 10/03/10 10:55

Re: [Excel] Filtrare da Fg1 a Fg2 in base a 1 colonna

Postdi Zoro76 » 22/11/10 15:57

Ho ricevuto notizie per quanto riguarda la macro per generare le linee. Praticamente adesso questa macro guarda la sigla e prende l'immagine giusta, quindi guarda la lunghezza nella colonna appropriata e in automatico scrive i valori.
Questa è la macro nel foglio Armatura

Codice: Seleziona tutto
Public Valfer As String
Public Valdir As Long

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set isect = Intersect(Target, Range("F7:F150"))
If Not isect Is Nothing Then
Valfer = Target.Offset(0, 1).Value
Valdir = Target.Offset(0, -3).Value
If Valfer = "" Then Exit Sub
Call Disegna
End If
End Sub


Sub Disegna()
Dim ctr As Boolean
Dim ctr2 As Boolean
On Error Resume Next
TF = ActiveCell.Offset(0, 1).Value
Select Case TF
Case "c", "i", "t", "p", "l"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImC")
x = 1
DImD = Valdir

Case "c1"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImC1")
DImD = Valdir - Range("K1").Value
DimP = Range("K1").Value
x = 2

Case "l1"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImC1")
DImD = Valdir - Range("K73").Value
DimP = Range("K3").Value
x = 2

Case "t1"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImC1")
DImD = Valdir - Range("K5").Value
DimP = Range("K5").Value
x = 2

Case "i1"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImC1")
DImD = Valdir - Range("K7").Value
DimP = Range("K7").Value
x = 2

Case "c2"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImC2")
DImD = Valdir - (Range("K2").Value) * 2
DimP = Range("K2").Value
x = 3

Case "l2"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImC2")
DImD = Valdir - (Range("K4").Value) * 2
DimP = Range("K4").Value
x = 3

Case "t2"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImC2")
DImD = Valdir - (Range("K6").Value) * 2
DimP = Range("K6").Value
x = 3

Case "i2"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImC2")
DImD = Valdir - (Range("K8").Value) * 2
DimP = Range("K8").Value
x = 3

Case "p1"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImP1")
DImD = Valdir - Range("K97").Value
DimP = Range("K9").Value
x = 5
Case "p2"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImP2")
DImD = Valdir - (Range("K10").Value) * 2
DimP = Range("K10").Value
x = 6

Case "p3"
Set Myimage = Sheets("Archivio Ferri").Shapes("ImP3")
DImD = Valdir - (Range("K10").Value) * 2 - Range("l9").Value
DimP = Range("K10").Value
DimP2 = Range("K11").Value
x = 7

End Select
Myimage.Copy
ActiveSheet.Paste
 With Selection
            .Left = ActiveCell.Left
            .Top = ActiveCell.Top
        End With
With ActiveCell
If x = 1 Then
.Value = "               " & DImD & "             " & "                    "
ctr = True
ElseIf x = 2 Then
.Value = "               " & DImD & "             " & DimP
ctr = True
ElseIf x = 3 Or x = 4 Then
.Value = DimP & "               " & DImD & "             " & DimP
ctr = True
End If
If ctr Then
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlTop
End If
If x = 5 Then
.Value = DimP & "                " & DImD & "                    "
ctr2 = True
ElseIf x = 6 Then
.Value = DimP & "               " & DImD & "             " & DimP
ctr2 = True

ElseIf x = 7 Then
.Value = DimP & "     " & DimP2 & "       " & DImD & "         " & DimP & "   "
ctr2 = True

End If
If ctr2 Then
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
End If
End With
End Sub
Zoro76
Utente Senior
 
Post: 107
Iscritto il: 10/03/10 10:55

Re: [Excel] Filtrare da Fg1 a Fg2 in base a 1 colonna

Postdi Flash30005 » 22/11/10 22:42

Allora!
in data 18/11/10 ore 15:47 ti ho chiesto
Flash30005 ha scritto:Ok, ho scaricato il file ma...
Ora dovresti inviare lo stesso file già compilato (quello che dovrebbe fare la macro con i dati presenti sui fogli)
escludi tutto ciò che farai a mano dopo, quindi inserisci i dati come vorresti che siano inseriti nelle varie tabelle.


Dopo diversi tuoi equivoci mi invii
un file con la descrizione dei dati che vorresti nel foglio Armature (i disegni dici che qualcuno ha iniziato il lavoro ma non l'ha terminato)
Zoro76 ha scritto:Chiedo umilmente perdono ma ieri sera ero veramente "cotto".
Sta mattina con la mente lucida ho controllato il file excel. Adesso è completo.
Nel 3 fogli che compongono il file ho aggiunto delle descrizioni spero dettagliate. In aggiunta al file sbagliato del mio precedente post c'è una macro (descritta nel foglio Armature) che copia delle immagini (poste nel foglio Archivio Ferri) dei ferri in base alla colonna G.
Questa macro mi è stata gentilmente preparata ad hoc da un'altro utente. Non è ancora definitiva ma svolge egregiamente il suo compito. Avevo chiesto se poteva farmi una modifica ma non ho ancora avuto occasione di sentirlo


Ti invio una macro che prende i dati dal tuo foglio FILE_txt (la notte di venerdi)
(dati che tu mi hai fatto trovare per riportarli nel foglio Armatura)
e inoltre non di poca importanza risolve il problema dei ferri: problema lasciato irrisolto dal tuo benefattore (almeno fino a tre giorni fa), evidentemente dovrei fare come qualcuno prendermi vacanza da venerdì pomeriggio fino a lunedì invece che stare davanti al Pc a risolvere i problemi altrui e attendere tre giorni per avere un plauso che come in questo caso non arriva... perché!? Perché quando sono state date le specifiche, colui che le ha date, non si trovava nelle condizioni di lucidità ottimali, poi passano altri tre giorni (di pura vacanza) e viene riproposto il problema, ora con mente lucida, riproponendo meglio le specifiche.

Infatti...
Ora dici che non avevi alcun problema visto che il tuo benefattore si è rifatto vivo donandoti la soluzione dei ferri ma che ti serviva importare il file testo cioè l'origine dei dati che mi hai postato come dati certi di input che fosse quello il loro schema.

Zoro76 ha scritto:Grazie mille Flash per il tempo che mi stai dedicando.
Ho fatto delle prove e la macro funziona in parte in base alle mie necessità. Nel senso che i dati che ho nel foglio FILE_txt devo cmq riportarli manualmente. Il discorso che avevo iniziato era di portare e compilare in automatico le tabelle del foglio Armature in base al txt. La macro fa molto bene il lavoro di portare i dati del foglio Archivio ma non è la mia priorità. Il foglio txt non è sempre uguale. Mi cambia praticamente sempre ogni volta che carico un file e quindi devo sempre inserire o eliminare righe in maniera manuale.


Quindi ho lavorato per 6 ore su una macro che in effetti non ti serviva ma che stavi facendola creare ad altri mentre a me avevi detto per scontato che i dati di partenza erano nel foglio File_Txt da te pubblicato.

Penso solo una cosa e sono abbastanza indignato per questo che non ho altro tempo da perdere su questo progetto e che per una cosa così futile (importare un file testo nella stessa stregua del file da te inviato) ci saranno molti altri utenti disposti ad aiutarti perché, per me, il tempo da dedicarti è finito qui.

Buon proseguimento
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Filtrare da Fg1 a Fg2 in base a 1 colonna

Postdi Zoro76 » 23/11/10 08:24

Zoro76 ha scritto:Grazie mille Flash per il tempo che mi stai dedicando.
Ho fatto delle prove e la macro funziona in parte in base alle mie necessità. Nel senso che i dati che ho nel foglio FILE_txt devo cmq riportarli manualmente. Il discorso che avevo iniziato era di portare e compilare in automatico le tabelle del foglio Armature in base al txt.


Innanzitutto mi dispiace che tu ti sia arrabbiato. Non era assolutamente mia intenzione farti perdere tempo prezioso.
Mi sarò spiegato male. Ma rileggendo i primi post la mia posizione era quella di chiedervi alcuni consigli su come fare i FILTRI AUTOMATICI per ogni singola tipologia. Mi avete dato ottimi consigli e ho provato da solo. Sono partito con tutte le mie buone intenzioni, visto che c'è stata occasione da parte mia di chiedervi delle macro complete, per non rompervi più del necessario.
Magari i miei primi post sono stati fraintesi e non ho spiegato bene il mio problema
Zoro76 ha scritto:Ho provato con una macro a fare il filtro solo per l'opzione "C" della colonna C e mi ha incollato però anche un dato di "T".
Il filtro che ho usato è UGUALE a C per la colonna C
crescente per la colonna D
crescente per la colonna E
UGUALE a "niente" per la colonna F

Via allego la macro così potete dirmi dove ho sbagliato


Poi per capire meglio il mio problema mi hai chiesto di postare i file completamente compilati. C'è stato un errore da parte mia perchè ho postato dei file sbagliati e non compilati come hai chiesto....può capitare
Flash30005 ha scritto:
Prova questo file


Zoro76 ha scritto:
Il file che mi hai allegato è : esempio_classifica

Il file di Flash mi fa scaricare un file nominato "esempio_classifica" per determinare i gironi delle squadre di calcio.
Non credo sia quello che volevi postare.


Per quanto riguarda la macro del mio "benefattore", come l'ho indicato in un post, se non sbaglio non centra niente con il fatto di filtrare i dati del file txt. Ho scritto inoltre che gli avevo chiesto una modifica. Quindi se tu ti sei "impallato" con la questione di questi disegni non è colpa mia.
La tua ultima macro ho scritto che fa in parte il lavoro perchè: perchè molto probabilmente non ho spiegato che il file txt importato non è sempre uguale non è sempre lo stesso (non avrebbe senso avere una macro che mi fa scegliere un file txt da importare) e quindi non compilava a pieno le tabelle.

Detto questo non resta che salutarci in amicizia. Purtroppo ci siamo capiti male.
Arrivederci e buona giornata.
Zoro76
Utente Senior
 
Post: 107
Iscritto il: 10/03/10 10:55

Re: [Excel] Filtrare da Fg1 a Fg2 in base a 1 colonna

Postdi Anthony47 » 28/11/10 01:22

Ma questo problema, messe da parte le incomprensioni, e' risolto o...

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

Re: [Excel] Filtrare da Fg1 a Fg2 in base a 1 colonna

Postdi Zoro76 » 02/12/10 15:00

Si! Tutto ok.
Zoro76
Utente Senior
 
Post: 107
Iscritto il: 10/03/10 10:55

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Filtrare da Fg1 a Fg2 in base a 1 colonna":


Chi c’è in linea

Visitano il forum: Nessuno e 32 ospiti