COPIA



  • COPIA
    di BUCK (utente non iscritto) data: 16/04/2015 13:42:02

    usando "for"----"next" desidero applicare la seguente forula :
    Range("BD34:BI34").Select
    Selection.Copy
    Range("DJ34").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Attualmente LA SOLUZIONE ADOTTATA COPIA CELLA BY CELLA ;
    ESSENDO LE CELLE IN 6 COLONNE CONTIGUE NELLA STESSA RIGA E' POSSILE COPIARLE
    TUTTE CONTEMPORANEAMENTE COME "Range("BD34:BI34").Select" ??
    Vedasi Codice VBA a seguire.
    Con cordialità grazie

     
    Sub C_BE_A_01()
    
     Dim I As Integer
     Dim K As Integer
     
        Range("HY17:JA17").Select
        Selection.Copy
        Range("CR29").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        
        For K = 16 To 22
        For I = 34 To 1833
    
        If Range("BD" & I) = 0 Or Range("DK32") >= Range("DK20") Then
        Exit Sub
        ElseIf Range("DJ" & I) = 0 Or Range("BM" & I) = Range("BG" & K) Then
        If Range("BE" & I) = Range("CR29") Or Range("BE" & I) = Range("CY29") _
        Or Range("BE" & I) = Range("DF29") Or Range("BE" & I) = Range("DM29") _
        Or Range("BE" & I) = Range("DT29") _
        Or Range("BE" & I) = Range("CS29") Or Range("BE" & I) = Range("CZ29") _
        Or Range("BE" & I) = Range("DG29") Or Range("BE" & I) = Range("DN29") _
        Or Range("BE" & I) = Range("DR29") _
        Or Range("BE" & I) = Range("CT29") Or Range("BE" & I) = Range("DA29") _
        Or Range("BE" & I) = Range("DH29") Or Range("BE" & I) = Range("DO29") _
        Or Range("BE" & I) = Range("DS29") Then
        Range("BD" & I).Select
        Selection.Copy
        Range("DJ" & I).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("BE" & I).Select
        Selection.Copy
        Range("DK" & I).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("BF" & I).Select
        Selection.Copy
        Range("DL" & I).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("BG" & I).Select
        Selection.Copy
        Range("DM" & I).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("BH" & I).Select
        Selection.Copy
        Range("DN" & I).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("BI" & I).Select
        Selection.Copy
        Range("DO" & I).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    
        End If
        End If
        
        Next I
        Next K
    
    End Sub
    



  • di lepat (utente non iscritto) data: 16/04/2015 18:48:59

    è possibile, bastava provare.
    è inutile scrivere

    Range("HY17:JA17").Select
    Selection.Copy

    basta

    Range("HY17:JA17").Copy


  • COPIA
    di BUCK (utente non iscritto) data: 16/04/2015 20:15:52

    chiedo scusa per la mia ignoranza, ma Range("HY34:JA34").Copy, si ripete fino a raggiungere Range("HY1833:JA1833").Copy
    e non riesco ad inserirla macro la quale prevede " For I = 34 To 1833 ........................Next I



  • di lepat (utente non iscritto) data: 17/04/2015 08:29:56

    ovviamente occorre cambiare strategia, però io non ho ben capito il tuo scopo, sarebbe meglio allegare un file di esempio con i dati ed il risultato desiderato