Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmi e Utility (https://www.hwupgrade.it/forum/forumdisplay.php?f=37)
-   -   Excel: problematiche e soluzioni (https://www.hwupgrade.it/forum/showthread.php?t=2102242)


winoni71 07-12-2020 23:26

Quote:

Originariamente inviato da Raffaele53 (Messaggio 47147396)
Sul HD del PC deve esistere una Directory = Excel macro, all'interno un'altra Directory = Titles.

Si, esatto, avevo modificato la directory perchè conteneva il mio nome, ma effettivamente quella reale è composta in quel modo.

Quote:

Originariamente inviato da Raffaele53 (Messaggio 47147396)
Adesso dopo la riga >>>For lColLoop = 1 To 7<<< vai accapo e scrivi>>> If Cells(lRowLoop, 5) <> "" Then
Subito prima di >>>Next lRowLoop<<< vai accapo e scrivi>>> End if

Avvia ed avrai in C:\Excel macro\Titles\ dei files (ex s10e01#.???.title) solo se nella cella in colonna F c'è scritto un qualcosa.

Ho modificato il codice come indicato, ma quando lo avvio mi da il seguente errore (Errore di compilazione: Next senza For) evidenziando in giallo "Sub RunCode()" ed in blu "Next".

Codice:

Sub Titles()
    Dim xSh As Worksheet
    Application.ScreenUpdating = False
    For Each xSh In Worksheets
        xSh.Select
        Call RunCode
    Next
    Application.ScreenUpdating = True
End Sub
Sub RunCode()
    'your code here
Const forReading = 1, forAppending = 3, fsoForWriting = 2
Dim fs, objTextStream, sText As String
Dim lLastRow As Long, lRowLoop As Long, lLastCol As Long, lColLoop As Long

lLastRow = Cells(Rows.Count, 1).End(xlUp).Row

For lRowLoop = 1 To lLastRow

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set objTextStream = fs.opentextfile("C:\Users\*******\Documents\Tv shows\Titles\Excel macro\Titles\" & Cells(lRowLoop, 1) & ".title", fsoForWriting, True)

    sText = ""

    For lColLoop = 1 To 7
    If Cells(lRowLoop, 5) <> "" Then
        sText = sText & Cells(lRowLoop, lColLoop) & Chr(10) & Chr(10)
    Next lColLoop

    objTextStream.writeline (Left(sText, Len(sText) - 1))


    objTextStream.Close
    Set objTextStream = Nothing
    Set fs = Nothing

End If
lRowLoop

End Sub


Raffaele53 08-12-2020 00:53

Quote:

Subito prima di >>>Next lRowLoop<<< vai accapo e scrivi>>> End if
Scusa ho sbagliato, prima di Next lColLoop

Quote:

For lColLoop = 1 To 7
If Cells(lRowLoop, 5) <> "" Then
sText = sText & Cells(lRowLoop, lColLoop) & Chr(10) & Chr(10)
End if
Next lColLoop
Oppure
Quote:

For lColLoop = 1 To 7
If Cells(lRowLoop, 5) <> "" Then sText = sText & Cells(lRowLoop, lColLoop) & Chr(10) & Chr(10)
Next lColLoop

winoni71 08-12-2020 01:14

In entrambi i casi continuano ad essere creati i file anche delle righe "F" vuote.

Raffaele53 08-12-2020 15:15

1 Allegato(i)
Mettere mano sui codici altrui c'è sempre da sbagliare. Era 6 e non 5 >>>Cells(lRowLoop, 6), mà a questo punto succedevano altri errori. Allego un files nel quale devi cambiare solo la directory in C:\Users\*******\Documents\Tv shows\Titles\Excel macro\Titles\ nei tre Moduli
Modulo1 = Mio codice ricreato da zero
Modulo2 = Stesso codice mio che cancella pure i valori in F
Modulo3 = Tuo codice rivisto che funziona per quello che ho capito
Dopo averlo usato diverse volte in C:\.....\Titles\ quanti files ci saranno?

winoni71 08-12-2020 17:02

Quote:

Originariamente inviato da Raffaele53 (Messaggio 47152684)
Mettere mano sui codici altrui c'è sempre da sbagliare. Era 6 e non 5 >>>Cells(lRowLoop, 6), mà a questo punto succedevano altri errori. Allego un files nel quale devi cambiare solo la directory in C:\Users\*******\Documents\Tv shows\Titles\Excel macro\Titles\ nei tre Moduli
Modulo1 = Mio codice ricreato da zero
Modulo2 = Stesso codice mio che cancella pure i valori in F
Modulo3 = Tuo codice rivisto che funziona per quello che ho capito
Dopo averlo usato diverse volte in C:\.....\Titles\ quanti files ci saranno?

Grazie mille.

Funzionano tutti 3.

sbaffo 03-02-2021 00:08

Assi dei grafici
 
ho un problema, vorrei fare un grafico con i valori dell'asse verticale sulla destra invece che sulla sinistra. Grafico qualunque tanto è vuoto, mi serve solo per avere le tacche con le linee di altezza (tipo foto segnaletica all'americana per capirci). Ho provato per un ora a spostare le tacche numerate a dx senza il minimo successo. Mi pareva si potesse fare, ma ora ne dubito.

Excel 2013, idem per powerpoint.

STECCO 05-03-2021 10:07

Ciao Ragazzi,
avrei bisogno di una dritta su excel..

ho una tabella con 5 colonne

ora scuola nome cogmome presenza
11 industriale giuseppe iaria SI
12 liceo paolo sitrace SI
13 magistrale pietro bozzo NO
14 artistico michele santerini SI
9 liceo antonio manti SI
10 magistrale aldo trani NO
7 artistico anna gallo SI

vorrei fare in modo che (in un altro foglio) vengano generate una tabellina per ogni alunno es:

industriale
11 giuseppe iaria SI


come posso fare? mi interessa che per ogni alunno ci sia la scuola in alto e se l'alunno fa più lezioni in quella scuola nella tabellina ci siano più righe


grazie in anticipo a chi mi aiuterà

sbaffo 06-03-2021 19:13

@ Stecco

allora, nell'attesa che arrivi in tuo aiuto Raffaele53 che qui è il master di excel, mi vengono in mente due metodi:

- quello basico: intanto prima ricopi la tabellina sull'altro foglio per fare le prove, selezioni tutta la tabella compresi i titoli e usi il FILTRO (tab Home, a destra >Ordina e Filtra>Filtro), a quel punto ti metti sulla colonna del nome e scegli "filtra per testo" e scegli un nome, vedrai solo le righe con quel nome.
Il problema sorge se hai due alunni con lo stesso nome, ma si possono combinare più filtri, aggiungi un filtro sulla colonna cognome, ecc.
E la scuola non verrà in alto ma sulla stessa riga, ma se la metti per prima o ultima sta bene uguale (quasi) :D

- quello un po' più complicato: usi il CERCA VERTICALE, ma è troppo complesso da spiegare, è meglio fare un po' di prove. Non sono sicuro che vada bene da solo però, creare dei filtri cognome non sarà semplicissimo...
.

Nessuno sa come spostare gli assi dei grafici a destra (mio post sopra)?
.

Raffaele53 07-03-2021 13:26

1 Allegato(i)
Se può esserTi utile (NON per tutti i grafici). Ex per grafico a linee/sbarre, clicca sul grafico, dovrebbero apparire i tre simboli. Cliccando sul PIU', alla prima voce "ASSI", vai sulla destra sul simbolo > e premi "Altre Opzioni". Adesso clicca sull'icona a destra (tre barre verticali). Cerca "Intersezione asse verticale" e clicca su "Alla categoria massima"

Ps. Ho risposto a STECCO nell'altro post e l'unica soluzione (tramite formule) sarebbe solo un'elenco. Certo che se cambia tipologia (ex per scuola) si può fare di meglio

sbaffo 10-03-2021 19:13

Ok, grazie 53, mi ero disperso tra le mille opzioni e l'avevo mancata.
Ora sapresti dirmi se è possibile avere due assi verticali, uno a sin e uno a dx? Anche identici eh, non per forza diversi.
L'idea è sempre il confronto all'americana, se ci sono tanto sospettati la foto si allarga ed è meglio ripetere i valori da entrambi i lati.:D
Oppure se si potessero fare diversi ci metterei inches da un lato e cm dall'altro, un confronto all'amatriciana :D

Raffaele53 11-03-2021 14:33

1 Allegato(i)
Non sono bravo con i grafici, vedi se Ti è utile...
https://www.youtube.com/watch?v=QoEffPOXrdg
https://www.youtube.com/watch?v=WhchZpER2oE

sbaffo 11-03-2021 22:11

grazie, c'era il trucco di cliccare su una colonna altrimenti è impossibile!

Però così non vale, ti piace vincere facile con youtube. :D scherzo, eh.

+Benito+ 18-03-2021 08:35

Mi serve una mano, sono due giorni che cerco in rete ma non trovo una via soddisfacente.
Problema: voglio plottare un grafico del tipo linee, senza puntini, e poi, sopra questo, plottare punti e linee che abbiano gli stessi assi e scala del grafico "sottostante" ma che siano evidenziati.

https://ibb.co/KzSKzkS

Questo è il diagramma di base, fatto con numerose serie.

Sopra questo, ho bisogno di plottare alcune linee (rette) con un grafico del tipo linee con indicatori, prese da singole caselle in giro per il foglio di calcolo.

Posso replicare i valori di queste celle in modo che siano plottabili, non è un problema.

Non riesco però, nemmeno col "trucchetto" di fare plot separati e copiarli-incollarli, a riportare correttamente questi grafici "sovrapposti".

Ad esempio, mi serve un grafico che abbia due estremità evidenziate, con coordinate 15 sulla X e 10 sulla Y per la prima e 30 sulla X e 19 sulla Y per la seconda.

Idee? Non si può fare?

sbaffo 20-03-2021 19:35

@ benito

non sono sicuro di aver capito bene, ma mi sembra che vuoi una cosa simile ai grafici a "linee con indicatori", c'è in excel tra i tipi di grafici.
Ma gli indicatori li vuoi solo per alcune linee: guarda i link ai video che mi ha suggerito raffaele53 qui sopra: una volta fatto un grafico con più serie si può cliccare su una serie e cambiare il tipo di grafico solo per quella serie (linea o colonna nel mio caso, ma è uguale). La seconda asse delle Y puoi farne a meno, oppure usarla mettendoci gli stessi valori della prima (o altri) e poi nasconderla.

Per i punti evidenziati, se non li vuoi tutti ma solo alcuni, in genere cliccando una volta sul punto te li seleziona tutti, cliccando due volte o più si riesce a selezionarne uno solo alla volta e modificarlo/formattarlo a piacimento. Almeno coi grafici a bolle io ci riuscivo.
Edit: ci sono riuscito anche sul singolo punto della linea con indicatori, dopo averlo selezionato singolarmente >tasto destro >formato coordinata >sotto opzioni serie il simbolino di sinistra tra i tre (il secchio di vernice) >pennarello e ci sei.

Buona fortuna.

+Benito+ 21-03-2021 08:41

Ieri finalmente ho risolto. E' relativamente semplice, ma richiede un trucchetto.
Per tracciare delle linee su un grafico già fatto con delle serie, devi aggiungere una nuova serie per ogni linea in cui inserire solo i valori relativi agli estremi della linea stessa.
Per farlo in maniera dinamica, però, c'è da usare un trucchetto visto che nonostante ci sia l'opzione di considerare le celle vuote come valori assenti, excel li considera zero...
Quindi:

- nel mio caso le n serie di base del grafico sono n colonne di dati dinamici
- a destra ho aggiunto una colonna di pari lunghezza in righe delle altre colonne, per ogni linea da tracciare(in modo da avere la stessa lunghezza ed indici sull'asse X)
- Nella formula che calcola i valori degli estremi della linea ho inserito un SE che mi riporta il valore Y in caso siamo in presenza di un vertice, ed invece restituisce NON.DISP() in caso contrario.

In questo modo excel vede solo i due punti di questa nuova serie e mi traccia una linea. A questo punto selezionando sul grafico le varie serie si può andare a cambiare il tipo di grafico per la serie in base al risultato che vogliamo ottenere.

Cloud76 21-03-2021 14:16

Libreoffice CALC

Ho un foglio che compilo da mesi, nella prima colonna inserisco la data, esempio 21/03/2021, in automatico mi accorciava sempre a 21/03/21, stessa cosa se scrivevo 21/03/21 mi teneva 21 ma effettivamente era scritto 2021 osservando nella riga di digitazione.

Ora ho aggiornato all'ultima versione e mi scrive sempre 2021 e non c'è verso di accorciarlo.
Come faccio a disattivare ste funzioni automatiche e che rimanga scritto quel cavolo che scrivo?
Nelle opzioni di correzione automatica non c'è nulla riguardo alle date.
Ah e non ho mai dovuto usare l'apostrofo per farle riconoscere come testo.

sbaffo 21-03-2021 16:13

@ benito

contento che ci sei riuscito, ma non si è capito una cippa.:D
se metti una foto almeno si capisce cosa volevi che fosse il risultato finale.

@ cloud76

non capisco se vuoi che li tratti come data o come testo, mi pare la seconda.
Con MS excel per farlo rimanere testo si deve mettere come primo carattere un apostrofo, esempio: '21/03/2021
dopo provo su LibreOffice se è uguale, forse ce l'ho installato da qualche parte ma non l'ultima versione di sicuro.

Cloud76 21-03-2021 16:24

Quote:

Originariamente inviato da sbaffo (Messaggio 47329034)
non capisco se vuoi che li tratti come data o come testo, mi pare la seconda.
Con MS excel per farlo rimanere testo si deve mettere come primo carattere un apostrofo, esempio: '21/03/2021
dopo provo su LibreOffice se è uguale, forse ce l'ho installato da qualche parte ma non l'ultima versione di sicuro.

Vorrei che rimanesse quello che scrivo, dell'apostrofo sì lo so ma non era mai servito prima, ti confermo che è uguale la cosa dell'apostrofo anche su libreoffice.
Mai usato comunque...
E' che prima la data rimaneva 21 ora non so perchè dopo aggiornamento vuole scrivere per forza 2021. Al momento ho ovviato selezionando la cella, click destro, formattazione cella e scegliendo il formato data come xx/xx/xx invece che xx/xx/xxxx, però non ho capito perchè ha iniziato a far così. Tra l'altro se copio e incollo una cella con la data inserita mesi fa e provo anche ad editarla la data rimane come era ma se la scrivo in una cella nuova vuole mettermi l'anno esteso.

Ah e altra cosa che prima non faceva, ora mi mostra nella cella ### invece che la data perchè la lunghezza della cella era giusta per il 21 mentre con 2021 andrebbe oltre la linea di fine cella e quindi mi mette solo ###. Prima non lo faceva e semplicemente si troncava il contenuto. Si può togliere questa abbreviazione?

sbaffo 21-03-2021 18:02

allora, mi sa che gli automatismi di riconoscimento data ecc. non sono eliminabili a monte, come anche in excel sono fatidiosissimi ma questo è il trend. Se trovi il modo faccelo sapere. Io ho spulciato le opzioni generali di calc senza trovare nulla, magari sei più abile o fortunato.

Il trucco di formattare come testo tutte le celle interessate è l'unico modo che conosco, oppure mettere sempre l'apostrofo. Chiaramente anche il tuo metodo, e poi copiare formato col pennello su tutte va bene.
A me l'anno viene di due cifre di default, probabilmente nell ultima versione hanno cambiato il formato standard...

per i ### c'è lo stesso problema su excel, se il formato non è testo diventa così se la cella è troppo stretta, ma se doppio clicchi in cima alla colonna sul limite con la colonna successiva ti allarga la colonna del giusto per vederla bene.

Io uso Libre 6.4, non ho aggiornato al 7.x.

Purtroppo stanno inseguendo Ms nel bene e nel male.

Raffaele53 21-03-2021 20:33

>>>Vorrei che rimanesse quello che scrivo
Sia Excel che LibreOffice per le sole "DATE", basta formattare le celle nel modo che desiderate (formatto ORE 21/03/21 o 21/03/2021 o 21/marzo/2021). Nel caso ci siano Date Americane=2021/03/21 basta formattarle in "personalizzato" con gg/mm/aa o gg/mm/aaaa


Tutti gli orari sono GMT +1. Ora sono le: 22:03.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.