Condividi:        

[excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

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]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

Postdi Zoro76 » 14/10/10 14:44

-Quale e' il problema con quel tipo di txt?
-Se devi "aprire" un file, che significa "scegliere la directory di destinazione"?


1) il problema e che non riesco a mettere ogni singolo dato in celle di excel diverse cioè:

96 C f10 L200p

96 in A1
C in B1
f in C1
10 in D1
L in E1
200 in F1
p in G1

Ascolto il tuo suggerimento e vado a chiedere nella sezione programmazione.

2) mi sono spiegato male:
nella Macro 1 c'è questa scritta: "TEXT;U:\2_CONTRATTI\IT.10.8606_Palazzine-Resid_MONCALIERI-TO_Arching\05-ESECUTIVI\05-PLANIMETRIE\Corpo D\lybk.txt" _

che vuol dire che io vado ad "aprire" questo file sempre qui; però questo file non si trova sempre qui, e quindi avrei bisogno di avere la possibilità di cercare questo file all'interno delle mie directory.
Zoro76
Utente Senior
 
Post: 107
Iscritto il: 10/03/10 10:55

Sponsor
 

Re: [excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

Postdi Anthony47 » 14/10/10 21:14

Se non avessi chiesto come fare a "scegliere la destinazione" ti avrei spiegato prima "come raccordare la macro attuale con questa nuova parte"...
La macro precedente ti metteva in FullNome il file che vuoi importare; ora:
-copia tutta la nuova macro eccetto Sub Macro1() ed End Sub e la inserisci nella Sub ScegliFile subito prima di End Sub.
-modifica la riga "TEXT;U:\2_CONTRATTI\IT.10.8606_Palazzine-Resid_MONCALIERI-TO_Arching\05-ESECUTIVI\05-PLANIMETRIE\Corpo D\lybk.txt" _
in
Codice: Seleziona tutto
"TEXT;" & FullNome _

In questo modo userai cio' che viene scelto come file "sorgente"; ovviamente l' importazione sara' fatta separando i campi esistenti, e quindi ti ritroverai con 96;C;f10;L200p e non 96;C;f;10;L;200;p (con ";" ho indicato il cambio di cella).
Se pero' riesci a spiegare quale "logica" va utilizzata per lo splittamento della riga si puo' lavorare con una macro per eseguire questa suddivisione; ad esempio, significa che i numeri di qualsiasi numero di cifre vanno sempre nella stessa cella mentre le lettere o i gruppi di lettere vanno in altra cella?
Tipo 123Tp4f5zAB82p diventa 123;Tp;4;f;5;zAB;82;p? Ignorando a questo punto gli spazi?

Se trovi una regola la si puo' implementare con una macro.

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

Re: [excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

Postdi Zoro76 » 15/10/10 08:11

Ho fatto un paio di prove e ho visto infatti che la macro mi importa i dati così: 96;C;f10;L200p
a me servirebbe invece che fossero così: 96;C;f;10;L;200;p e cioè che le "lettere" fossero separate dai "numeri".
Adesso se questa operazione è semplice sarebbe ottimo, se invece risultasse complicata ho visto che potrei fare in modo che già alla sorgente (nel file txt che creo) i dati siano divisi in modo giusto: praticamente così 96 Cf 10 L 200 p facendo in modo che l'importazione di excel risultasse giusta perchè ho bisogno che le lettere siano separate dai numeri.
Solo per spiegare cosa significano questi codici: sono praticamente dei blocchi predisegnati: "96" è la quantità di blocchi presenti nel disegno; "C" è 1 tipo di ferro (ci saranno anche T - f - P - e altri); "f10" sta per il diametro del ferro; "L200" è la lunghezza di questo ferro; "p" o "p2" sta se il ferro è piegato 1 volta o 2 volte.

Visto che poi dovrò creare una macro che mi impagini questi dati mi è sembrato giusto spiegarti subito di cosa si tratta: i dati che effettivamente mi servono sono: 96 ; C; 10; 200; p; p2 ----- f e L esistono solo per leggere meglio i blocchi nel disegno.

Nel file txt esistono però altri dati dei quali non ho bisogno e che importato fanno un po' di confusione a mio parere perchè vengono impaginati im modo strano. Le diciture che non servono sono:

File: IT.09.8505_LA_PERLA_Livello_2.dwg
Arm Coll :
Arm Int:

Non so se tu hai provato ad importare il file txt per vedere come viene. Spero di aver spiegato abbastanza le cose. Se c'è qualcosa che non è chiaro fammi sapere. Quello che mi interessa per il momento è risolvere questo problema dell'importazione; una volta sistemato dovrò passare all'impaginazione di questi dati.

Ciao
Zoro76
Utente Senior
 
Post: 107
Iscritto il: 10/03/10 10:55

Re: [excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

Postdi Zoro76 » 15/10/10 15:18

In giornata ho fatto delle prove per il file txt e ho risolto tutti i problemi.
Ti ringrazio Anthony per il tuo tempo. Adesso provo ad impaginare l'importazione del file e magari se ho qualche problema mi faccio risentire.

Grazie
Zoro76
Utente Senior
 
Post: 107
Iscritto il: 10/03/10 10:55

Re: [excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

Postdi Anthony47 » 15/10/10 20:01

Meglio cosi'...
Ovviamente devi registrare una nuova macro per l' importazione del nuovo formato, il cui codice andra' usato al posto di quella che hai registrato ieri.

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

Re: [excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

Postdi Zoro76 » 18/10/10 14:29

Ho fatto una prova con un file xls. Però in questo caso devo portare solo determinate celle da un file esterno. La macro non mi da nessun errore però non mi porta i dati. allego la macro così magari si riesce a trovare l'inghippo:

Codice: Seleziona tutto
Sub Connettori()
'
' Connettori
'
With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "All files", "*.*"
        .Filters.Add "EXCEL", "*.xlsx", 1
        .Show

     If .SelectedItems.Count = 0 Then
     MsgBox ("Nessuna voce selezionata, procedura annullata")
     GoTo Esci
     End If
     FullNome = .SelectedItems(1)     'Directory e Nome del file selezionato
Esci:
End With
    ActiveWindow.SmallScroll Down:=15
    Range("G52:L56").Select
    Selection.Copy
    Windows("Liste di Carico_PROVA.xls").Activate
    Range("A13:B17").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A13:B17").Select
    Application.CutCopyMode = False
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Range("A1").Select
End Sub


I dati che sono nelle celle in questione G52:L56 però si trovano formattati anche con celle unite ( g52+h52+i52+j52 e k52+l52). Dentro a queste "due celle" ci sono i dati che devo portare nell'altro file.
Esiste un modo per far si che la macro eviti di portare tutte quelle celle ma le metta solo in due effettive?
Zoro76
Utente Senior
 
Post: 107
Iscritto il: 10/03/10 10:55

Re: [excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO

Postdi Anthony47 » 19/10/10 02:29

Da un mio precedente messaggio:
ho sempre ripetuto in ogni occasione che le Celle Unite sono una trappola in cui non bisogna cadere, perche' hanno degli effetti collaterali, alcuni evidenti, altri nascosti e perversi; esse vanno usate solo in celle non soggette a elaborazione, meglio ancora se usate solo in fogli destinati alla "presentazione" dei risultati, non alle elaborazioni.

Quindi per me devi eliminare le celle unite; per una prova veloce potresti invece copiare /incollare separatamente i range G52:G56 e K52:K56.

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

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "[excel]CREAZIONE DI UN MACRO IN UN FILE PRECOMPILATO":


Chi c’è in linea

Visitano il forum: Nessuno e 81 ospiti