Risultati da 1 a 13 di 13

Discussione: elenco ospiti in stanze di strutture ricettive



  1. #1
    L'avatar di samuelecalabro
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    treviso
    Età
    44
    Messaggi
    9
    Versione Office
    OFFICE 2007 WIN
    Likes ricevuti
    0
    Likes dati
    0

    elenco ospiti in stanze di strutture ricettive

    Grazie ancora a Baloon 50 per il lavoro postato ( cartina ITALIA), ora però ho un altro quesito che implementa il lavoro di baloon

    mettiamo che al posto delle regioni ci siano stanze d'albergo divise per blocco piano stanza e che per ogni stanza ci siano più ospiti
    gli ospiti sono più di 500 quindi lo riterrei improponibile aggiungere nome per nome all'interno del codice vba.
    ogni ospite possiede un codice id che è univoco.
    possiedo già la lista degli ospiti ma non ancora la suddivisione blocco piano stanze che però avrò in settimana.
    ho creato partendo dall'esempio di Ballon50 un esempio che mi da al posto delle province l'id number e al posto delle regioni blocco piano stanza
    di seguito all'id compaiono altre due colonne col cognome e nome che vengono "pescati" col cerca.vert dalla lista di prima
    quindi appena mi compare l'id automaticamente compaiono nome e cognome.
    diciamo che questi ospiti possono cambiare stanza .posso fare in modo che variando blocco piano stanza ,dell'ospite pippo depippis dal blocco A piano 1 stanza 2 al blocco b piano 2 stanza 10 direttamente nella tabella me lo cambia automaticamente anche nel risultato ottenuto con la macro creata da Baloon50
    nel file allegato ho provato a creare delle macro ma purtroppo non mi cancellano i vecchi record che rimangono visibili sempre, ho inserito la strnga vba di clear come da esempio di baloon ma non mi funziona.
    grazie sono sicuro che mi aiuterete a risolvere questo problema

    https://www.dropbox.com/s/nud2zbnswn...5%29.xlsm?dl=0

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978
    Ho fatto qualche modifica. Ho inserito valori separati nelle celle K2 (blocco) - L2 (piano) - M2 (stanza) e inserito questa routine:
    Codice: 
    Sub Estrai()
    Dim Blocco As String
    Dim Piano As Byte
    Dim Stanza As Integer
    Dim Whs1 As Worksheet, Whs2 As Worksheet
    Dim iRow As Integer, iCount As Integer
    Dim uRiga As Integer
    
    
    uRiga = Foglio2.Range("A" & Rows.Count).End(xlUp).Row
    
    
    Set Whs1 = Foglio2
    Set Whs2 = Foglio3
    
    
    Whs2.Range("o1").CurrentRegion.Offset(1, 0).ClearContents
    iCount = 2
    
    
    With Whs1
        Blocco = Whs2.Range("k2")
        Piano = Whs2.Range("l2")
        Stanza = Whs2.Range("m2")
        For iRow = 2 To uRiga
            If .Cells(iRow, 4) = Blocco And .Cells(iRow, 5) = Piano And .Cells(iRow, 6) = Stanza Then
                Whs2.Cells(iCount, 15) = .Cells(iRow, 1) 'ID
                Whs2.Cells(iCount, 16) = .Cells(iRow, 2) 'Nome
                Whs2.Cells(iCount, 17) = .Cells(iRow, 3) 'Cognome
                iCount = iCount + 1
            End If
        Next
    End With
    
    
    Set Whs1 = Nothing
    Set Whs2 = Nothing
    
    
    End Sub
    File Allegati File Allegati

  3. #3
    L'avatar di samuelecalabro
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    treviso
    Età
    44
    Messaggi
    9
    Versione Office
    OFFICE 2007 WIN
    Likes ricevuti
    0
    Likes dati
    0
    grazie Rubik ma non riesco a far funzionare le macro( ho abilitato l'uso), ci deve essere qualche errore, ovviamente mio.
    il codice generato dalla macro che ho fatto

    Codice: 
    Sub BloccoAPiano1Stanza2()
    'range("M2:O10").Clear
    ' BloccoAPiano1Stanza2 Macro
    ' BloccoAPiano1Stanza2
    
    '
    Range("M2").Select
    ActiveCell.FormulaR1C1 = "Blocco A Piano 1 Stanza 2"
    Range("O2").Select
    Sheets("Foglio2").Select
    Range("A2:A4").Select
    Selection.Copy
    Sheets("Foglio3").Select
    ActiveSheet.Paste
    Range("O2:O4").Select
    Application.CutCopyMode = False
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("P2").Select
    ActiveCell.FormulaR1C1 = _
    "=IF(ISNA(VLOOKUP(RC[-1],Foglio2!R1C1:R22C6,2,0)),"""",(VLOOKUP(RC[-1],Foglio2!R1C1:R22C6,2,0)))"
    Range("Q2").Select
    ActiveCell.FormulaR1C1 = ""
    Range("P2").Select
    Selection.AutoFill Destination:=Range("P2:P4"), Type:=xlFillDefault
    Range("P2:P4").Select
    Range("Q2").Select
    ActiveCell.FormulaR1C1 = _
    "=IF(ISNA(VLOOKUP(RC[-2],Foglio2!R1C1:R22C6,3,0)),"""",(VLOOKUP(RC[-2],Foglio2!R1C1:R22C6,3,0)))"
    Range("Q2").Select
    Selection.AutoFill Destination:=Range("Q2:Q4"), Type:=xlFillDefault
    Range("Q2:Q4").Select
    End Sub
    Sub BloccoApiano2stanza5()
    'range("M2:o10").Clear
    ' BloccoAPiano2Stanza5 Macro
    ' BloccoAPiano2Stanza5
    
    '
    Range("M2").Select
    ActiveCell.FormulaR1C1 = "Blocco A Piano 2 Stanza 5"
    Range("O2").Select
    Sheets("Foglio2").Select
    Range("A5:A9").Select
    Selection.Copy
    Sheets("Foglio3").Select
    ActiveSheet.Paste
    Range("O2:O6").Select
    Application.CutCopyMode = False
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("P2").Select
    ActiveCell.FormulaR1C1 = _
    "=IF(ISNA(VLOOKUP(RC[-1],Foglio2!R1C1:R22C6,2,0)),"""",(VLOOKUP(RC[-1],Foglio2!R1C1:R22C6,2,0)))"
    Range("Q2").Select
    ActiveCell.FormulaR1C1 = ""
    Range("P2").Select
    Selection.AutoFill Destination:=Range("P2:P6"), Type:=xlFillDefault
    Range("P2:P6").Select
    Range("Q2").Select
    ActiveCell.FormulaR1C1 = _
    "=IF(ISNA(VLOOKUP(RC[-2],Foglio2!R1C1:R22C6,3,0)),"""",(VLOOKUP(RC[-2],Foglio2!R1C1:R22C6,3,0)))"
    Range("Q2").Select
    Selection.AutoFill Destination:=Range("Q2:Q6"), Type:=xlFillDefault
    Range("Q2:Q6").Select
    End Sub
    
    Sub BloccoBpiano1stanza6()
    'range("M2:o10").Clear
    ' BloccoBPiano1Stanza6 Macro
    ' BloccoBPiano1Stanza6
    
    '
    Range("M2").Select
    ActiveCell.FormulaR1C1 = "Blocco B Piano 1 Stanza 6"
    Range("O2").Select
    Sheets("Foglio2").Select
    Range("A10:A13").Select
    Selection.Copy
    Sheets("Foglio3").Select
    ActiveSheet.Paste
    Range("O2:O5").Select
    Application.CutCopyMode = False
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("P2").Select
    ActiveCell.FormulaR1C1 = _
    "=IF(ISNA(VLOOKUP(RC[-1],Foglio2!R1C1:R22C6,2,0)),"""",(VLOOKUP(RC[-1],Foglio2!R1C1:R22C6,2,0)))"
    Range("Q2").Select
    ActiveCell.FormulaR1C1 = ""
    Range("P2").Select
    Selection.AutoFill Destination:=Range("P2:P5"), Type:=xlFillDefault
    Range("P2:P5").Select
    Range("Q2").Select
    ActiveCell.FormulaR1C1 = _
    "=IF(ISNA(VLOOKUP(RC[-2],Foglio2!R1C1:R22C6,3,0)),"""",(VLOOKUP(RC[-2],Foglio2!R1C1:R22C6,3,0)))"
    Range("Q2").Select
    Selection.AutoFill Destination:=Range("Q2:Q5"), Type:=xlFillDefault
    Range("Q2:Q5").Select
    End Sub
    le macro la tua e la mia si sovrappongono soprattutto con blocco piano stanza
    cosa devo cambiare?
    cosa fa la parte che hai inserito
    grazie e scusa x la mia ignoranza
    Ultima modifica fatta da:ges; 10/03/16 alle 23:26 Motivo: Inserimento macro tra CODE

  4. #4

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978
    Ora sono fuori e non posso provare, ma la mia routine sostituisce la tua. Devi solo impostate i tre valori in k2, l2,m2 e avviare la macro

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  5. #5
    L'avatar di samuelecalabro
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    treviso
    Età
    44
    Messaggi
    9
    Versione Office
    OFFICE 2007 WIN
    Likes ricevuti
    0
    Likes dati
    0
    ciao Rubik purtroppo non ho potuto provare la funzionalità della macro come da te suggerita
    se mi puoi dare una mano te ne sarei grato
    Grazie
    Samuele

  6. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978
    Hai scaricato l'allegato del post #2?
    Cos'è che non funziona?

  7. #7
    L'avatar di samuelecalabro
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    treviso
    Età
    44
    Messaggi
    9
    Versione Office
    OFFICE 2007 WIN
    Likes ricevuti
    0
    Likes dati
    0
    buona sera ho scaricato il file ho cancellato il codice generato dalla mia macro e ho tenuto il tuo .poi ho fatto i passaggi per generare macro mantenedo il tuo codice .
    il risultato è che dei 4 "pulsanti" creati se schiaccio su 2 mi chiede cancella i dati precedenti così da eliminarmi le righe gli altri non lo fanno e quindi rimangono righe di record precedenti
    ti rinvio il file così come sistemato e il codice vba generato
    Grazie

    https://www.dropbox.com/s/jgbk6huffv...egna.xlsm?dl=0

    Sub Estrai()
    Dim Blocco As String
    Dim Piano As Byte
    Dim Stanza As Integer
    Dim Whs1 As Worksheet, Whs2 As Worksheet
    Dim iRow As Integer, iCount As Integer
    Dim uRiga As Integer

    uRiga = Foglio2.Range("A" & Rows.Count).End(xlUp).Row

    Set Whs1 = Foglio1
    Set Whs2 = Foglio2

    Whs2.Range("o1").CurrentRegion.Offset(1, 0).ClearContents
    iCount = 2

    With Whs1
    Blocco = Whs2.Range("k2")
    Piano = Whs2.Range("l2")
    Stanza = Whs2.Range("m2")
    For iRow = 2 To uRiga
    If .Cells(iRow, 4) = Blocco And .Cells(iRow, 5) = Piano And .Cells(iRow, 6) = Stanza Then
    Whs2.Cells(iCount, 15) = .Cells(iRow, 1) 'ID
    Whs2.Cells(iCount, 16) = .Cells(iRow, 2) 'Nome
    Whs2.Cells(iCount, 17) = .Cells(iRow, 3) 'Cognome
    iCount = iCount + 1
    End If
    Next
    End With

    Set Whs1 = Nothing
    Set Whs2 = Nothing

    End Sub

  8. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978
    Non devi generare altre macro. Devi semplicemente compilare le celle Blocco (K2) - Piano (L2) - Stanza (M2) nel Foglio1 e lanciare la mia macro. Le altre macro non servono.
    Al massimo crea un pulsante nel Foglio1 e ci associ la mia macro (Sub Estrai)

  9. #9
    L'avatar di samuelecalabro
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    treviso
    Età
    44
    Messaggi
    9
    Versione Office
    OFFICE 2007 WIN
    Likes ricevuti
    0
    Likes dati
    0
    grazie RUBIK
    ogni volta che inserisco blocco piano stanza non succede nulla
    forse è meglio che capisco il codice che hai generato in modo da cambiare i pèarametri a seconda della posizione data


    Sub Estrai()
    Dim Blocco As String
    Dim Piano As Byte
    Dim Stanza As Integer
    Dim Whs1 As Worksheet, Whs2 As Worksheet
    Dim iRow As Integer, iCount As Integer
    Dim uRiga As Integer

    uRiga = Foglio2.Range("A" & Rows.Count).End(xlUp).Row con questo comando il codice va a prendere A in riga

    Set Whs1 = Foglio1
    Set Whs2 = Foglio2

    Whs2.Range("o1").CurrentRegion.Offset(1, 0).ClearContents il dato da prendere in considerazione è sulla cella o1
    iCount = 2

    With Whs1
    Blocco = Whs2.Range("k2") posione blocco
    Piano = Whs2.Range("l2") posizione piano
    Stanza = Whs2.Range("m2") posizione stanza
    For iRow = 2 To uRiga
    If .Cells(iRow, 4) = Blocco And .Cells(iRow, 5) = Piano And .Cells(iRow, 6) = Stanza Then
    Whs2.Cells(iCount, 15) = .Cells(iRow, 1) 'ID posizione id nella cella(dove?

    Whs2.Cells(iCount, 16) = .Cells(iRow, 2) 'Nome
    Whs2.Cells(iCount, 17) = .Cells(iRow, 3) 'Cognome
    iCount = iCount + 1
    End If
    Next
    End With

    Set Whs1 = Nothing
    Set Whs2 = Nothing

    End Sub

  10. #10

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978
    Appena posso, ti allego un file

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  11. #11

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978
    Ti allego il file con la routine associato all'evento "Change".

    P.S. Ho inserito anche la versione con formule matriciali da inserire con CTRL + MAIUSC + ENTER:

    =SE.ERRORE(INDICE(Foglio2!A$2:A$21;PICCOLO(SE((Foglio2!$D$2:$D$22=Foglio3!$K$2)*(Foglio2!$E$2:$E$22=Foglio3!$L$2)*(Foglio2!$F$2:$F$22=Foglio3!$M$2);RIF.RIGA(Foglio2!$A$2:$A$21)-RIF.RIGA(Foglio2!$A$2)+1);RIGHE($1:1)));"")

    P.P.S. Ho creato un convalida che prende dalla tabella i singoli valori
    File Allegati File Allegati

  12. I seguenti 3 utenti hanno dato un "Like" a Rubik72 per questo post:


  13. #12
    L'avatar di samuelecalabro
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    treviso
    Età
    44
    Messaggi
    9
    Versione Office
    OFFICE 2007 WIN
    Likes ricevuti
    0
    Likes dati
    0
    grazie
    ritengo risolto il trhed

  14. #13

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978
    Se hai risolto il problema, segna questa discussione come "RISOLTO".
    Vai sul menù "Strumenti Discussione" (all'inizio del thread) e scegli la voce ""Segna questo thread come risolto...".

Discussioni Simili

  1. Database movimenti ospiti
    Di Casty nel forum Domande su Excel VBA e MACRO
    Risposte: 15
    Ultimo Messaggio: 06/01/17, 15:34
  2. elenco ospiti in stanze di strutture ricettive
    Di samuelecalabro nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 08/03/16, 00:59

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •