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)


Raffaele53 05-12-2014 14:59

>>>è difficile crearne una per permettere un conta.se su multifogli?
Posso farti un codice, non so quale Excel usi (se sopra il 2003 dovrai rinominare il file), avviabile tramite un bottone.

Se riesco una Function che diventa una formula come quelle d'Excel.
Ps. Condizione particolare....Ex il nome che c'è in A2 è uguale (come posizione) in tutti i fogli sempre alla cella A2 ecc ecc anche gli altri nomi?
Oppure le colonne A nei vari fogli possono essere posizionate differentemente?

Latvia 05-12-2014 15:29

Quote:

Originariamente inviato da Raffaele53 (Messaggio 41871012)
>>>è difficile crearne una per permettere un conta.se su multifogli?
Posso farti un codice, non so quale Excel usi (se sopra il 2003 dovrai rinominare il file), avviabile tramite un bottone.

Se riesco una Function che diventa una formula come quelle d'Excel.
Ps. Condizione particolare....Ex il nome che c'è in A2 è uguale (come posizione) in tutti i fogli sempre alla cella A2 ecc ecc anche gli altri nomi?
Oppure le colonne A nei vari fogli possono essere posizionate differentemente?

uso excel 2013. Meglio se fosse una formula :D
come detto tutti i fogli sono identici, cambia solo il riepilogo perchè scompongo i vari dati come in questo caso.

Latvia 05-12-2014 15:31

io uso excel in modo molto primitivo oserei dire, ma trovo strano che microsoft non permetta una formula così semplice (ma secondo me utile) su multifogli.

Raffaele53 05-12-2014 17:38

Trovato in rete e corretto
B2 =CountIfSheets($B2;B$1) e trascinala dove vuoi

EDIT --- ho notato adesso che devi proprio salvarlo come XLSM ---EDIT

Ora se non hai abilitato le macro in excel non funziona
h t t p s://support.office.com/it-it/article/Attivazione-o-disattivazione-di-macro-nei-documenti-di-Office-7b4fdd2e-174f-47e2-9611-9efe4f860b12?ui=it-IT&rs=it-IT&ad=IT#bm12
----------------------------------------------------------------------------------------------------

Dentro il file premi ALT+F11
Si apre l'editor, sulla barra in altro premi INSERISCI e scegli MODULO, ora incolla il codice sotto nella parte a destra
Chiudi l'editor e salva il file, subito sotto il nome del file scegli MACRO XLSM

Function CountIfSheets(arange As Range, xCriteria As String) As Double
Dim RangeAddress As String
Dim i As Long
Application.Volatile
RangeAddress = arange.Address
With ThisWorkbook
For i = 1 To Worksheets.Count - 1
CountIfSheets = CountIfSheets + Application.CountIf(.Worksheets(i).Range(RangeAddress), xCriteria)
Next i
End With
End Function

Latvia 06-12-2014 02:23

Quote:

Originariamente inviato da Raffaele53 (Messaggio 41871830)
Trovato in rete e corretto
B2 =CountIfSheets($B2;B$1) e trascinala dove vuoi

EDIT --- ho notato adesso che devi proprio salvarlo come XLSM ---EDIT

Ora se non hai abilitato le macro in excel non funziona
h t t p s://support.office.com/it-it/article/Attivazione-o-disattivazione-di-macro-nei-documenti-di-Office-7b4fdd2e-174f-47e2-9611-9efe4f860b12?ui=it-IT&rs=it-IT&ad=IT#bm12
----------------------------------------------------------------------------------------------------

Dentro il file premi ALT+F11
Si apre l'editor, sulla barra in altro premi INSERISCI e scegli MODULO, ora incolla il codice sotto nella parte a destra
Chiudi l'editor e salva il file, subito sotto il nome del file scegli MACRO XLSM

Function CountIfSheets(arange As Range, xCriteria As String) As Double
Dim RangeAddress As String
Dim i As Long
Application.Volatile
RangeAddress = arange.Address
With ThisWorkbook
For i = 1 To Worksheets.Count - 1
CountIfSheets = CountIfSheets + Application.CountIf(.Worksheets(i).Range(RangeAddress), xCriteria)
Next i
End With
End Function


:yeah:

se posso trovare un piccolo appunto.... calcola anche il foglio di riepilogo, che tuttavia non mi crea problemi perchè è diverso. Però potrebbe ''disturbare''. Come si potrebbe ovviare all'eventuale inconveniente?
sottraendo nella formula un conta.se?

Raffaele53 06-12-2014 03:05

In teoria no perchè c'e scritto di farli tutti tranne l'ultimo-->For i = 1 To Worksheets.Count-1 (naturale che tale foglio sia alla destra di tutti gli altri). Oppure se desideri tenerlo tutto a sinistra sarebbe--->For i = 2 To Worksheets.Count

Invece noto un grossolano errore.
Solo per la colonna B =CountIfSheets($B2;B$1)...,$B2 non si può mettere perchè sarebbe un riferimento-circolare.
Pertanto bisogna spostare la tabella di una colonna, MALATTIA sarà nella colonna C, la formula sarebbe =CountIfSheets($B2;C$1) e trascini

Comunque se leggi questo codice vedi che il foglio riepilogo viene escluso fisicamente.

Option Explicit
Option Compare Text
Function CountIfSheets(arange As Range, xCriteria As String) As Double
Dim RangeAddress As String
Dim i As Long, nome As String
Application.Volatile
RangeAddress = arange.Address
For i = 1 To Worksheets.Count
nome = Sheets(i).Name
If nome <> "Riepilogo" Then
CountIfSheets = CountIfSheets + Application.CountIf(Worksheets(i).Range(RangeAddress), xCriteria)
End If
Next i
End Function

Latvia 06-12-2014 23:28

Quote:

Originariamente inviato da Raffaele53 (Messaggio 41873493)
In teoria no perchè c'e scritto di farli tutti tranne l'ultimo-->For i = 1 To Worksheets.Count-1 (naturale che tale foglio sia alla destra di tutti gli altri). Oppure se desideri tenerlo tutto a sinistra sarebbe--->For i = 2 To Worksheets.Count

Invece noto un grossolano errore.
Solo per la colonna B =CountIfSheets($B2;B$1)...,$B2 non si può mettere perchè sarebbe un riferimento-circolare.
Pertanto bisogna spostare la tabella di una colonna, MALATTIA sarà nella colonna C, la formula sarebbe =CountIfSheets($B2;C$1) e trascini

Comunque se leggi questo codice vedi che il foglio riepilogo viene escluso fisicamente.

Option Explicit
Option Compare Text
Function CountIfSheets(arange As Range, xCriteria As String) As Double
Dim RangeAddress As String
Dim i As Long, nome As String
Application.Volatile
RangeAddress = arange.Address
For i = 1 To Worksheets.Count
nome = Sheets(i).Name
If nome <> "Riepilogo" Then
CountIfSheets = CountIfSheets + Application.CountIf(Worksheets(i).Range(RangeAddress), xCriteria)
End If
Next i
End Function

se devo essere sincero non ho capito l'errore :stordita: ... ma a me funzionava perfettamente :D

per il riferimento dell'ultimo foglio, magari ho sbagliato a guardare. Ricontrollo

nongio22 18-12-2014 15:17

Salve ragazzi ho un problema con excel 2013 64bit su windows 8.1. Ho due colonne di dati di 10 righe e voglio inserire un grafico a dispersione con linee smussate ed indicatori. Non appena clicco sull'icona, excel crasha. Ho provato a disinstallare office, ripulendo anche il registro di sistema, ma niente. Allego un video dove mostra questo comportamento.
https://www.youtube.com/watch?v=2klmWi7Sh4w
avete qualche idea?

wjmat 30-12-2014 21:06

Quote:

Originariamente inviato da nongio22 (Messaggio 41923210)
Salve ragazzi ho un problema con excel 2013 64bit su windows 8.1. Ho due colonne di dati di 10 righe e voglio inserire un grafico a dispersione con linee smussate ed indicatori. Non appena clicco sull'icona, excel crasha. Ho provato a disinstallare office, ripulendo anche il registro di sistema, ma niente. Allego un video dove mostra questo comportamento.

avete qualche idea?

Provato a disabilitare l'accelerazione hardware nelle opzioni?
A me ed in altri casi ho visto poteva dare problemi

Inviato dal mio GT-I9300 utilizzando Tapatalk

nongio22 31-12-2014 12:16

Grazie per la risposta! Ho appena provato, ma il problema si ripresenta lo stesso. In ogni caso ho raggirato il problema inserendo prima il grafico e dopo i dati all'interno.

marcomazzurco 31-12-2014 21:29

Ciao ragazzi, ho un quesito da porvi... Ho acquistato una stampante per tessere (badge) e vorrei sapere se posso importare la foto con i campi vuoti su Excel per poi modificare i campi nome cognome foto ecc (si tratta di una tessera soci)... Grazie mille e buon anno a tutti!

Inviato dal mio GT-I9300 utilizzando Tapatalk

MM 01-01-2015 22:13

Spero che qualcuno possa almeno darmi un suggerimento per "automatizzare" una certa procedura.

Situazione:
- un foglio di Excel in cui ci sono vari numeri in colonna, immessi manualmente.
- seconda colonna con formula di calcolo, riferita a colonna 1
- terza colonna con formula di calcolo, sempre riferita alla 1
- ...
Insomma ci sono alcune colonne il cui valore viene calcolato in base all'immissione (e ovviamente al valore) di un numero nella prima colonna.

Desiderio: poter stampare a richiesta un foglio, un tagliando, un qualcosa in cui venga riportata un'intestazione costante ed il valore della casella scelta (magari pure con qualcosa che identifichi il foglio da cui stampo, visto che sono più di uno)

robertino_salemi 20-01-2015 15:16

Salve a tutti,
oggi ho eseguito un export dal sito della banca, il quale mi permette di esportare i miei dati in un file .csv

Quando apro il file trovo le informazioni così strutturate:
Data;a debito;a credito;Valuta;Causale;Descrizione

tutto disposto nella prima cella, così anche le righe successive (contenenti le informazioni da me desiderate).

C'è una funzione che mi permette di eseguire un explode di ogni valore in una colonna ad esso dedicata?

Esempio:
A B C .....
Data A debito A credito .....

Grazie!

dr.gazza 20-01-2015 15:41

Quote:

Originariamente inviato da robertino_salemi (Messaggio 42041154)
Salve a tutti,
oggi ho eseguito un export dal sito della banca, il quale mi permette di esportare i miei dati in un file .csv

Quando apro il file trovo le informazioni così strutturate:
Data;a debito;a credito;Valuta;Causale;Descrizione

tutto disposto nella prima cella, così anche le righe successive (contenenti le informazioni da me desiderate).

C'è una funzione che mi permette di eseguire un explode di ogni valore in una colonna ad esso dedicata?

Esempio:
A B C .....
Data A debito A credito .....

Grazie!

il csv non va aperto con doppio click, anche se ha l'icona di Excel;
devi aprire un file Excel bianco ed importare i dati da "Dati" > Da testo

Una volta selezionato il tuo file csv ti comparirà la procedura guidata
per l'import;

Nella prima maschera scegli "Delimitato" > Avanti >
come delimitatore scegli Punto e virgola > Avanti >
nella finestra successiva potrai scegliere per ogni singola colonna il tipo di dato;

Fine

robertino_salemi 20-01-2015 16:25

Quote:

Originariamente inviato da dr.gazza (Messaggio 42041273)
il csv non va aperto con doppio click, anche se ha l'icona di Excel;
devi aprire un file Excel bianco ed importare i dati da "Dati" > Da testo

Una volta selezionato il tuo file csv ti comparirà la procedura guidata
per l'import;

Nella prima maschera scegli "Delimitato" > Avanti >
come delimitatore scegli Punto e virgola > Avanti >
nella finestra successiva potrai scegliere per ogni singola colonna il tipo di dato;

Fine

Grazie dr.gazza,
ovviamente funziona alla grande! :D

+Benito+ 26-01-2015 10:00

Mi consigliate un manuale, magari scaricabile, che parta da ZERO riguardo la programmazione VBA? Trovo un sacco di manualini di 30 pagine che partono con esempi che richiedono una conoscenza pregressa.

Legolas84 05-02-2015 21:05

Ciao, mi servirebbe una mano.

Ho creato un foglio di Excel per gestire un torneo di PES. Vorrei automatizzare la classifica:



Nella prima colonna ci sono i nomi delle squadre, nella seconda i punti.

I punti vengono calcolati tramite una semplice funzione somma che pesca i dati da un'altro foglio dove vi sono i punti giornata per giornata.

Quello che vorrei è che Excel mi mettesse in automatico le squadre in ordine di punti dal più alto al più basso mano a mano che cambiano.

Quindi in pratica bisognerebbe legare la cella del nome della squadra alla cella con i punti, poi far si che il tutto si ordini dinamicamente dal valore più alto al più basso, senza però perdere i riferimenti di formula sul tabellino.

Secondo voi si può fare? :)

Diaevil 06-02-2015 08:00

Inserire righe vuote tra valori diversi - Excel 2007
 
Ciao a tutti,
Ho cercato la mia problematica su questo 3d ma forse mi è sfuggita...
Vorrei sapere come si fa ad inserire delle righe vuote quando il valore della cella sottostante è diverso. (I valori sono ordinati dalla A alla Z, possono essere anche 250 e al termine ce sempre una cella con la scritta FINE.)
Cioè, vorrei passare automaticamente da questa situazione:
A
A
A
A
B
B
C
C
C
D

FINE

A questa:

A
A
A
A

B
B

C
C
C

D

FINE

Mi serve un modo automatico perchè devo separare 250 valori in più di 70 fogli ogni mese.

Grazie!!!
_______

Frick10 25-02-2015 10:07

Salve a tutti,
sto usando questo codice per inserire righe vuote alternate:

Codice:

Sub insert()
For i = 2 To 20
    Rows(i & ":" & i).Select
    Selection.insert Shift:=xlDown
    i = i + 1
Next
End Sub

cosa dovrei modificare per aggiungere 3 righe vuote alternate alle attuali invece di una?
grazie

sal001 25-02-2015 13:12

Ciao a tutti!

Primo messaggio. Spero di essere nel posto giusto. Premessa: di excel penso di saperne il 2 o 3%.. cercherò di spiegarmi come meglio posso:

Ho scaricato un file excel dal sito Inps (che attinge dati dal bata base dell'Inps). Ho bypassato la protezione usando "straxx". Ora riesco a vedere le formule nella varie celle. Una di queste fa riferimento ad un foglio "FCalcolo" che non riesco a trovare:

=SE('[Gestione RR1]FCalcolo'!$N$219>0;'[Gestione RR1]FCalcolo'!$N$219/'[Gestione RR1]FCalcolo'!$N$217;0)

I fogli sembra essere 10

Grazie ..


Tutti gli orari sono GMT +1. Ora sono le: 05:42.

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