Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [VBA] Recuperare valore da cella in loop

    ciao!

    sto cercando di creare la mia prima macro.
    con un for loop, dovrei recuperare dei valori dalle celle.

    al momento ho questo:
    codice:
    Sub Cerca()
        Dim multipliDi As Integer
        multipliDi = 160
        Dim maxCerca As Integer
        maxCerca = 3373
        
        For i = 0 To maxCerca Step i + multipliDi
            MsgBox i
        Next
        
    End Sub
    in pratica, i valori sono della riga i e colonne A e C.
    come dovrei fare???

  2. #2
    allora, con questo sono riuscito ad ottenere ciò che mi serviva:

    codice:
    Sub Cerca_Sindaco()
        Dim multipliDi As Integer
        multipliDi = 160
        Dim maxCerca As Integer
        maxCerca = 3373
        Dim f2Index As Integer
        f2Index = 1
          
        For i = multipliDi To maxCerca Step i + multipliDi
            Sheets("Foglio2").Cells(f2Index, 2).Value = Sheets("Foglio1").Cells(i, 1).Value
            Sheets("Foglio2").Cells(f2Index, 3).Value = Sheets("Foglio1").Cells(i, 3).Value
            f2Index = f2Index + 1
        Next
        
    End Sub

  3. #3
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    non era molto chiaro cosa volevi ottenere...
    Ultima modifica di patel; 07-02-2018 a 11:27

  4. #4
    in pratica.

    su Foglio1 ho 3373 righe, con tre colonne:
    CODICE DESCRIZIONE QUANTITa'

    dovevo copiare i valori su Foglio2 della colonna A (CODICE) e colonna C (QUANTITà') partendo dalla riga 160 e suoi multipli.
    facendo un controll manuale a campione, sembrerebbe aver funzionato!

    poi sicuramente c'è un modo migliore per farlo, ma io e il VB non andiamo molto daccordo.....

  5. #5
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    non capisco la logica del tuo loop, io avrei fatto
    codice:
    dr = 1 ' riga destinazione
       For i = multipliDi To maxCerca Step multipliDi
               Sheets("Foglio2").Cells(i, 2).Value = Sheets("Foglio1").Cells(dr, 1).Value
               Sheets("Foglio2").Cells(i, 3).Value = Sheets("Foglio1").Cells(dr, 3).Value
            dr = dr+1
        Next

  6. #6
    si perchè così hai ricopiato la riga 160 di foglio1 sulla riga 160 di foglio2.
    lasciando quelle in mezzo vuote.
    mentre io devo copiare quelle righe scartando le altre.

    come se cancellassi tutte le altre righe che non sono la 160 e suoi multipli.
    non so se mi sono riuscito a spiegare!

  7. #7
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    non hai guardato attentamente il codice, copio sulla riga dr

  8. #8
    Quote Originariamente inviata da patel Visualizza il messaggio
    non hai guardato attentamente il codice, copio sulla riga dr
    l'ho guardato e l'ho testato.
    la riga 160 del foglio1 mi viene copiata alla riga del foglio2.
    e questo non è quello che mi serve!

    la riga 160 del foglio1 deve essere copiata sulla riga 1 del foglio2.
    e così via.

  9. #9
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    hai ragione, ho preso un abbaglio, il tuo codice è corretto, l'unica cosa che non mi torna è
    codice:
    For i = multipliDi To maxCerca Step i + multipliDi
    perché non
    codice:
    For i = multipliDi To maxCerca Step multipliDi
    Ultima modifica di patel; 07-02-2018 a 17:50

  10. #10
    Quote Originariamente inviata da patel Visualizza il messaggio
    hai ragione, ho preso un abbaglio, il tuo codice è corretto, l'unica cosa che non mi torna è
    codice:
    For i = multipliDi To maxCerca Step i + multipliDi
    perché non
    codice:
    For i = multipliDi To maxCerca Step multipliDi
    lo ammetto, per mia ignoranza in materia.
    su VBA non sono preparato.
    infatti sto usando il tuo For.

    però devo dire che funzionano entrambi, anche se non so darmi una spiegazione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.