Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Copiare valori a condizione

Ultimo Aggiornamento: 19/11/2018 18:26
Post: 1
Registrato il: 19/11/2018
Città: TAVARNELLE VAL DI PESA
Età: 34
Utente Junior
Microsoft Excel 2013
OFFLINE
19/11/2018 15:11

Buonasera a tutti,
Premetto che non sono assolutamente pratico di VBA ed ho paura che per risolvere il mio problema sia necessario proprio il VBA.
Ho un file dove ho più fogli:
Voglio che all'avverarsi di una condizione (nello specifico che nella colonna E ci sia scritto GHIB), l'intera riga venga copiata nel foglio successivo.
Per intendersi, nel foglio 1 ho una situazione riepilogativa dove ogni riga rappresenta un lavoro da fare e nella colonna E c'è la sigla di un'azienda che prende in carico un lavoro (in totale 4 o 5 aziende).
I fogli successivi sono ognuno riferito ad un'azienda (quindi 4 o 5 fogli) e voglio che dal foglio 1, le varie righe vengano smistate nei relativi fogli.
So di non essere stato troppo chiaro, purtroppo non posso allegare il file per questioni di privacy, per favore ditemi cosa ne pensate.
Post: 4.012
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
19/11/2018 15:24

Ciao Leonardo

In pratica tu vuoi che digitando una stringa in colonna E l'intera riga venga spostata sul foglio di pertinenza?

Allega una file di esempio (con dati di fantasia) ma strutturalmente uguale al tuo originale ed inserisci a mano il risultato desiderato.

Si per fare quello che chiedi occorre il VBA.

Ma la colonna E viene compilata a mano o ci sono formule?
[Modificato da alfrimpa 19/11/2018 15:24]

Alfredo
Post: 1
Registrato il: 19/11/2018
Città: TAVARNELLE VAL DI PESA
Età: 34
Utente Junior
Microsoft Excel 2013
OFFLINE
19/11/2018 15:35

Salve,
Ho inserito un foglio strutturalmente uguale, nel quale ho scritto anche una spiegazione.
E' importante che nel Foglio Generale i dati rimangano, e vengano solo copiati (e non spostati) negli altri fogli.
Attendo vostre.
Post: 4.014
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
19/11/2018 16:27

Ciao

Prova questa macro da inserire nel modulo del foglio Generale

vb
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim ur As Long
If Not Intersect(Target, Range("E2:E1000")) Is Nothing Then
If Target.Rows.Count > 1 Or Target.Value = "" Then Exit Sub
ur = Sheets(Target.Value).Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To 5
        Sheets(Target.Value).Cells(ur + 1, i).Value = Target.Offset(0, i - 5)
    Next i
End If
End Sub


però se elimini (se non strettamente necessarie) le strutture "Tabella" è meglio altrimenti i record non si accodano correttamente sui fogli.
[Modificato da alfrimpa 19/11/2018 16:46]

Alfredo
Post: 2
Registrato il: 19/11/2018
Città: TAVARNELLE VAL DI PESA
Età: 34
Utente Junior
Microsoft Excel 2013
OFFLINE
19/11/2018 16:37

Scusa, ma devo modificare qualcosa?
Perchè il VBA che mi hai dato non funziona
Post: 4.015
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
19/11/2018 16:40

Hai inserito il codice nel modulo Foglio Generale?

Hai eliminato le strutture "Tabella"?

Se fai queste due cose digitando qualcosa nelle celle della colonna la macro funziona.
[Modificato da alfrimpa 19/11/2018 16:44]

Alfredo
Post: 3
Registrato il: 19/11/2018
Città: TAVARNELLE VAL DI PESA
Età: 34
Utente Junior
Microsoft Excel 2013
OFFLINE
19/11/2018 16:58

Scusa ma non posso eliminare la struttura tabella, perchè ho dei filtri che mi sono necessari.
Poi immagino che nel codice VBA che hai scritto, io debba andare a modificare qualcosa (ad esempio i nomi dei fogli), ma non riesco a trovare nulla di tutto ciò.
Scusate per la mia ignoranza, ma sono totalmente digiuno di VBA.
Post: 4.016
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
19/11/2018 17:06

Se il problema è solo quello dei filtri questi li puoi attivare su qualsiasi foglio (anche senza la struttura "Tabella") dal menù Dati, Filtro.

Ti allego il file conb la macro inserita.

Io traffico poco con le strutture "Tabella" per cui non sono in grado di suggerirti del codice che tenga conto di queste.


Alfredo
Post: 4
Registrato il: 19/11/2018
Città: TAVARNELLE VAL DI PESA
Età: 34
Utente Junior
Microsoft Excel 2013
OFFLINE
19/11/2018 18:08

Abbi pazienza,
Sul tuo file funziona alla perfezione, quando invece vado a copiarlo sul mio, non succede niente.
Post: 4.017
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
19/11/2018 18:24

Leonardo smanettando un po' ho scritto il codice che funziona anche con le tabelle ed è questo.

vb
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim ur As Long
Dim nometabella As String
Select Case Target.Value
    Case Is = "A"
        nometabella = "Tabella3"
    Case Is = "B"
        nometabella = "Tabella9"
    Case Is = "C"
        nometabella = "Tabella5"
    Case Is = "D"
        nometabella = "Tabella8"
End Select
If Not Intersect(Target, Range("E2:E1000")) Is Nothing Then
If Target.Rows.Count > 1 Or Target.Value = "" Then Exit Sub
ur = Sheets(Target.Value).ListObjects(nometabella).DataBodyRange.Cells(2, 1).End(xlUp).Row
    For i = 1 To 5
        Sheets(Target.Value).Cells(ur + 1, i).Value = Target.Offset(0, i - 5)
    Next i
End If
End Sub


Ti allego il file

Alfredo
Post: 4.018
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
19/11/2018 18:26

Re:
leonardosperduti, 19/11/2018 18.08:

Abbi pazienza,
Sul tuo file funziona alla perfezione, quando invece vado a copiarlo sul mio, non succede niente.




In questo non posso aiutarti molto.

Non essendo lì non so tu cosa abbia fatto.

Se puoi allega il file non funzionante.

[Modificato da alfrimpa 19/11/2018 18:26]

Alfredo
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Spostare righe se la condizione data è presente (3 messaggi, agg.: 01/11/2020 15:27)
copiare cella su condizione (2 messaggi, agg.: 21/11/2016 18:01)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 21:31. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com