| | Post: 3.398 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
31/07/2017 18:46 | |
Su questo mi trovi impreparato.
Ho qualche idea ma devo fare delle prove per vedere se funzionano o meno ma la vedo un po' difficile (almeno per me).
Alfredo |
|
| | Post: 17 | Registrato il: 28/07/2017
| Città: MILANO | Età: 36 | Utente Junior | 2010/2013 | | OFFLINE | |
|
31/07/2017 18:49 | |
Cioè manualmente in excel si fa con ALT + INVIO.
non si potrebbe tradurre in una macro? |
| | Post: 18 | Registrato il: 28/07/2017
| Città: MILANO | Età: 36 | Utente Junior | 2010/2013 | | OFFLINE | |
|
31/07/2017 18:59 | |
Ho letto che lo fa questa formula:
CODICE.CARATT(10)
Ne sapete qualcosa? è possibile applicarla alla funzione? |
| | Post: 3.399 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
31/07/2017 19:00 | |
Si questo lo so.
Il punto è che noi abbiamo una funzione e le funzioni in Excel restituiscono risultati ma non compiono azioni ed inserire ALT + INVIO è appunto un'azione.
Per compiere azioni occorre utilizzare una Sub.
Alfredo |
| | Post: 19 | Registrato il: 28/07/2017
| Città: MILANO | Età: 36 | Utente Junior | 2010/2013 | | OFFLINE | |
|
31/07/2017 19:04 | |
la soluzione potrebbe esser quella di lanciare una procedura dopo la funzione....non so.
avete altre idee? |
| | Post: 3.402 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
01/08/2017 09:18 | |
Ciao Wexcel
E' stato più semplice del previsto
Ti ho modificato la function
gb Function Riporta1(a As Range, rng As Range)
Dim cel As Range
Dim stringa As String
For Each cel In rng
If cel.Value = a.Value Then
Riporta1 = Riporta1 & cel.Offset(0, 1).Value & " " & cel.Offset(0, 2).Value & "; " & vbCrLf
End If
Next cel
End Function
L'unica cosa che devi fare è impostare, nelle celle dove la vai ad inserire Formato Celle, Allineamento, Testo a capo.
Alfredo |
| | Post: 20 | Registrato il: 28/07/2017
| Città: MILANO | Età: 36 | Utente Junior | 2010/2013 | | OFFLINE | |
|
01/08/2017 09:19 | |
Buongiorno ragazzi...
alfrimpa, avrei da segnalarti un'ultima cosa:
premesso che la funzione svolge il compito richiesto, ho un problema.
ogni volta che apro il file excel di riferimento nelle celle in cui è inserita la formula appare : #VALORE!
la formula in questione è riferita ad un altro file excel ma nononstante aggiorni i collegamenti devo necessariamente aprire il file altrimenti questa non funziona... |
| | Post: 3.403 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
01/08/2017 12:17 | |
Ciao Wexcel
Per un file chiuso la formula va scritta così
vb =Riporta1(A1;'C:\Excel\[Wexcel.xlsm]Foglio1 '!$B$8:$B$18)
variando ovviamente il percorso del file
Alfredo |
| | Post: 21 | Registrato il: 28/07/2017
| Città: MILANO | Età: 36 | Utente Junior | 2010/2013 | | OFFLINE | |
|
02/08/2017 10:54 | |
Buongiorno a tutti. Alfredo grazie mille del supporto; con riferimento all TUA funzione riporta1 adattata con testo a capo, avrei da segnalarti una cosa: nel caso in cui sono presenti delle corrispondenze non valorizzate mi appare la seguente situazione:
77532020; x; 77709252; x;
77712252; x;
dove io elimino la x con SOSTITUISCI, ma mi rimane comunque lo spazio vuoto, cioè cosi:
77532020;
77709252;
77712252;
Secondo voi è possibile fare in modo che venga eliminato lo spazio tra i vari record avendo questo risultato ?
77532020; 77709252; 77712252;
Grazie mille !
|
| | Post: 3.406 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
02/08/2017 11:25 | |
Allega piccolo file di esempio
Alfredo |
| | Post: 22 | Registrato il: 28/07/2017
| Città: MILANO | Età: 36 | Utente Junior | 2010/2013 | | OFFLINE | |
|
02/08/2017 13:09 | |
Ecco il file di esempio:
grazie |
| | Post: 3.407 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
02/08/2017 13:46 | |
Ecco la function modificata
vb Function Riporta1(a As Range, rng As Range)
Dim cel As Range
Dim stringa As String
For Each cel In rng
If cel.Value = a.Value And cel.Offset(0, 1).Value <> "" Then
Riporta1 = Riporta1 & cel.Offset(0, 1).Value & " " & cel.Offset(0, 3).Value & vbCrLf
End If
Next cel
End Function
Ho tolto anche il ";" perché visto che ogni voce va a capo lo ritengo abbastanza inutile.
Alfredo |
| | Post: 23 | Registrato il: 28/07/2017
| Città: MILANO | Età: 36 | Utente Junior | 2010/2013 | | OFFLINE | |
|
02/08/2017 14:52 | |
Grazie Alfreo. solo una domanda: Ma...se volessi avere le corrispondenze in due colonne, all'intero della stessa riga, come le seguente esempio: AS IS: TO BE:
7710 7710 7799 7723 7723 7720 7730 7730 7799 7720
Che ne dite? |
| | Post: 3.408 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
02/08/2017 15:26 | |
Ma perché ad ogni post fai una domanda diversa?
Anche qui allega un piccolo esempio altrimenti è difficile capire.
Alfredo |
| | Post: 24 | Registrato il: 28/07/2017
| Città: MILANO | Età: 36 | Utente Junior | 2010/2013 | | OFFLINE | |
|
02/08/2017 15:44 | |
Perchè me ne sono accorto ora che va strutturato diversamente...(
in allegato l'esempio.
grazie |
| | Post: 3.409 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
02/08/2017 15:49 | |
Onestamente non saprei come fare.
In base a quale criterio le 6 voci del prodotto1 devono essere suddivise nelle tre coppie esposte?
Alfredo |
| | Post: 25 | Registrato il: 28/07/2017
| Città: MILANO | Età: 36 | Utente Junior | 2010/2013 | | OFFLINE | |
|
02/08/2017 15:57 | |
beh, è una scelta arbitraria.
L'importante è che ci siano due coppia; l'ideale sarebbe averle ripartite equamente ma so che non è possibile, quindi andrebbe bene anche una soluzione diversa.
basta che siano divisi in due coppie... |
| | Post: 3.410 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
02/08/2017 16:04 | |
Mi spiace su questo non so aiutarti.
Alfredo |
|
|