Excel e gli applicativi Microsoft Office Archivia dati in Orizzontale da Sx verso Dx

Login Registrati
Stai vedendo 11 articoli - dal 1 a 11 (di 11 totali)
  • Autore
    Articoli
  • #4216 Score: 0 | Risposta

    Dodi
    Partecipante
      2 pts
      Buon giorno a tutti,
      il fine settimana come potete ben vedere dai miei interventi sul forum  mi diletto a creare e imparare cose nuove in vba creandomi delle user che poi mi alleggeriscono il lavoro in settimana,
      anche grazie al vostro aiuto, 
      e vi ringrazio anticipatamente, 
      oggi mi son imbattuto in un altro problema e mi spiego. 
      ho la userform "Certificato" ;
      facendo doppio clic nella listbox,  le textbox si popolano, e fin qui tutto ok
      ora quello che mi occorre è: 
      nelle textbox evidenziate in ciano io scrivo dei dati e quello che mi serve e archiviare quei dati con il tasto "archivia - modifica" 
      i dati dovranno esser archiviati nella stessa riga di riferimento del coppio clik , il codice sotto fa già in parte qsta cosa, e cioè se modifico dei dati nelle textbox e clicco sul tasto modifica_archivia i dati nel foglio gestionale vengono sostituiti e modificati, 
      chiusa la premessa appena citata ore vorrei che: 
      i dati delle tre textbox evidenziate in ciano dovranno iniziare ad archiviarsi a partire dalla colonna "P" in poi, in senso orizontale, 
      quindi penso che ci voglia una routin che archivia_Modifica i dati da Sx verso Dx cercando la prima colonna libera partendo da Sx,
      in pratica il risultato deve essere come la riga 6 del foglio "Gestionale"
       
       
      Allego il file esempio per capire meglio e spero di esser stato chiaro nella descrizione sopra. 
       
      Qualcuno di voi può esser cosi gentile da suggerirmi la stringa di codice che mi fa ciò e  che fa al mio coso? 
      ancora grazie
       
       
      Private Sub CommandButton25_Click()  '< ---------------TASTO ARCHIVIA MODIFICA
      Dim no_ligne As Integer
      Sheets("Gestionale").Select
       For x = 0 To ListBox1.ListCount - 1      
            If ListBox1.Selected(x) = True The
            GoTo c
            End If  
        Next x
      c:
      no_ligne = ListBox1.List(x)
      Cells(no_ligne + 5, 3) = CDate(a2.Value)
      Cells(no_ligne + 5, 4) = ComboBox4.Value
      Cells(no_ligne + 5, 11) = ComboBox2.Value
      Cells(no_ligne + 5, 10) = TextBox100.Value
      Cells(no_ligne + 5, 12) = CDate(TextBox67.Value)
      Cells(no_ligne + 5, 13) = TextBox103.Value
      Cells(no_ligne + 5, 14) = CDate(TextBox104.Value)
      Cells(no_ligne + 5, 15) = TextBox109.Value
      CaricaDati
      End Sub
      Allegati:
      You must be logged in to view attached files.
    #4218 Score: 0 | Risposta

    Marius44
    Moderatore
      58 pts
      Ciao
      Forse non ho capito!
      Ma non ti basta aggiungere queste righe:
      Cells(no_ligne + 5, 16) = TextBox1.Value
      Cells(no_ligne + 5, 17) = TextBox2.Value
      Cells(no_ligne + 5, 18) = TextBox86.Value
       
      A meno che tu non intenda altro e, come detto, non ho capito cosa vuoi fare.
      Ciao,
      Mario
       
      PS - Una precisazione: le variabili che si riferiscono a riga e colonna vanno sempre dichiarate come LONG e non INTEGER
      #4219 Score: 0 | Risposta

      Dodi
        Ciao Marius 
        Grazie per la risposta. Così come l'hai scritto non e corretto o meglio dire non ottengo il risultato voluto. 
        In pratica vorrei archiviare i dati delle 3 textbox ciano sempre in orizzntale. 
        Mi spiego meglio. 
        Ogni mese devo registrare dati in sequenza sulla stessa riga di selezione con doppio click e non voglio che si sovrascrivono. Ma devo avere il risultato della riga 6 del foglio gestionale. 
         
        Spero di esser stato chiaro. 
        Quindi il codice che mi serve e di cercare la colonna libera sulla riva di selezione con doppio clic
         E la colonna di partenza deve essere la P 
        #4220 Score: 0 | Risposta

        Dodi
          In pratica facendo riferimento al tuo codice la volta successiva i dati dovranno esser archiviati in 
          Cells(no_ligne+5,19)=textbox1.value
          Cells(no_ligne+5,20)=textbox2.value
          Cells(no_ligne+5,21)=textbox86.value
           
          E ancora così via la volta ancora successiva
          Cells(no_ligne+5,22)=textbox1.value
          Cells(no_ligne+5,23)=textbox2.value
          Cells(no_ligne+5,24)=textbox86.value
           E così via 
           
          Insomma mai sovrascriversi 
           
          Spero di aver chiarito il dubbio
          E di essermi spiegato ancor di più 
          #4222 Score: 0 | Risposta

          albatros54
          Moderatore
            89 pts
            questa linea di codice ti trova la prima cella vuota dell'ultima colonna a SX , riferita alla riga del record 
            finalcol = Cells(no_ligne + 5, Columns.Count).End(xlToLeft).Column
            
             
            Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
            Sempre il mare, uomo libero, amerai!
            ( Charles Baudelaire )
            #4223 Score: 0 | Risposta

            dodi
              ciao Albatros 
              grazie per la risposta 
               
               
               
              ho provato ma tutte le volte mi sovrascrive le stesse celle, 
              cosa mi manca?
              o come va completato il codice
              grazie
               
              finalcol = Cells(no_ligne + 5, Columns.Count).End(xlToLeft).Column
               
              Cells(no_ligne + 5, 16) = TextBox1.Value
              Cells(no_ligne + 5, 17) = TextBox2.Value
              Cells(no_ligne + 5, 18) = TextBox86.Value
              #4224 Score: 0 | Risposta

              albatros54
              Moderatore
                89 pts
                finalcol ti trova l'utima colonna libera,quindi
                Cells(no_ligne + 5, finalcol) = TextBox1.Value
                e poi continui... 
                 
                Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing) Sempre il mare, uomo libero, amerai! ( Charles Baudelaire )
                #4225 Score: 0 | Risposta

                dodi
                  Ho risolto cosi
                   
                  spero che vada bene, 
                  ho cmq ottenuto il risultato voluto
                   
                  finalcol = Cells(no_ligne + 5, Columns.Count).End(xlToLeft).Column + 1
                  Cells(no_ligne + 5, finalcol) = TextBox1.Value
                  finalcol1 = Cells(no_ligne + 5, Columns.Count).End(xlToLeft).Column + 1
                  Cells(no_ligne + 5, finalcol1) = TextBox2.Value
                  finalcol2 = Cells(no_ligne + 5, Columns.Count).End(xlToLeft).Column + 1
                  Cells(no_ligne + 5, finalcol2) = TextBox86.Value
                   
                  #4226 Score: 0 | Risposta

                  albatros54
                  Moderatore
                    89 pts
                    perchè tutto sto parapiglia, bastava incrementare il valore di finalcol,finalcol+1,finalcol+2 
                     
                    Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                    Sempre il mare, uomo libero, amerai!
                    ( Charles Baudelaire )
                    #4236 Score: 0 | Risposta

                    Dodi
                      Buon giorno
                      Grazie di tutto 
                       
                      #4280 Score: 0 | Risposta

                      Dodi
                        Buona sera a tutti .
                        Riprendo qsta discussione perché mi è sorto un problema è cioè! Se sbaglio a modificare i dati volevo evitare di fare di nuovo doppio clic in listbox e rimodificare i dati. Esiste un modo magari con un comandbotton
                        cancellare un dato  del record di riferimento alla riga del doppio clic? 
                         Grazie 
                         
                        Login Registrati
                        Stai vedendo 11 articoli - dal 1 a 11 (di 11 totali)
                        Rispondi a: Archivia dati in Orizzontale da Sx verso Dx
                        Gli allegati sono permessi solo ad utenti REGISTRATI
                        Le tue informazioni: