Range pour copier un colonne vers plusieurs cellules

bonjour,

existe t il une commande avec range pour faire un copier coller d une colonne vers plusieurs cellules de la même feuille?

exemple :

colonne de ("a1:a6")

avec

a1 qui doit être copié en c5

a2 qui doit être copié en d6

a3 qui doit être copié en e7

a4 qui doit être copié en f8

a5 qui doit être copié en g9

a6 qui doit être copié en h10

tout ça sur une seule ligne, sans devoir faire "range("..")=range("..")" à chaque fois?

merci

non. Mais tu peux ruser

j=3
For i = 1 to 5
cells(i+4,j)=range("A" & i)
j=j+1
next i

oui, mais les cellules de destination de l'exemple ne sont pas ces valeurs qui ont une certaine logique, elles sont dispachées sur la feuille et n ont pas de suite logique.

elles peuvent être b8 , c29, d36 , y12 ......

alors pourquoi poses tu la question ?

Sinon tu peux faire un truc comme ça

Sub tototo()
    Set depart = Range("A1:A6")
    tablo = Array("C5", "D6", "E7", "F8", "G9", "H10")
    For Each c In depart
        Range(tablo(i)).Value = c.Value
        i = i + 1
    Next c
End Sub

Mais tu ne trouveras pas un code qui va te coller V8 en J47 sans tapper V8 et J47

salut,

pour que ma demande soit plus simple, voici mes lignes, pour condition = 1, à savoir que ceci est multiplié par 27 et que ça fait très long. je suis même au max des arguments pour la macro. il s'agit d une banque de données que je charge dans diverses cellules, et ceci, sur 27 banques.

Sub loadbank()

Application.DisplayAlerts = False

test = Range("o25")

Select Case test

Case Is = 1

Range("bl6") = Range("bo6")

Range("bl7") = Range("bo7")

Range("bl8") = Range("bo8")

Range("ao11") = Range("bo9")

Range("bl10") = Range("bo10")

Range("bl11") = Range("bo11")

Range("ah63") = Range("bo12")

Range("bl13") = Range("bo13")

Range("ah66") = Range("bo14")

Range("bl15") = Range("bo15")

Range("ah69") = Range("bo16")

Range("ai36") = Range("bo17")

Range("ah39") = Range("bo18")

Range("ah45") = Range("bo19")

Range("ah42") = Range("bo20")

Range("al60") = Range("bo21")

Range("ah57") = Range("bo22")

Range("ah60") = Range("bo23")

Range("G39") = Range("bo24")

Range("ah72") = Range("bo25")

Range("ah74") = Range("bo26")

Range("ah77") = Range("bo27")

Range("ah79") = Range("bo28")

Range("ah83") = Range("bo29")

Range("ah85") = Range("bo30")

Range("ah88") = Range("bo31")

Range("ak63") = Range("bo32")

Range("ak67") = Range("bo33")

Range("ah48") = Range("bo34")

Range("au16") = Range("bo35")

Range("au17") = Range("bo36")

Range("ah50") = Range("bo37")

Range("ai35") = Range("bo38")

Range("bl39") = Range("bo39")

Range("ah118") = Range("bo40")

Tu fais un array avec les range de droite et un array avec les range de gauche.. puis tu boucles sur ton array

je suis un peu novice dans vba.

t'es t il possible de m'écrire les 1eres lignes de ce que tu me dis pour que je saisisse bien s il te plait ?

Sub tototo()

Tablo=arrray("BL6",...)

tablo2= Array("BO6",...)

For i=lbound(tablo) to ubound(tablo)

Range(tablo(i)).Value =range(tablo2(i)).value

Next i

End Sub

Mets ton tesg et remplis les petits points

salut,

ça fonctionne très bien. merci

cependant, après chronométrage des temps de chargements des 2 méthodes, déception, il s'avère qu'elles sont égales, avec pourtant, moins de lignes.

encore merci pour ton aide.

Elleq font le meme nombre d'opérations...

Rajoute

application.screenupdating=false

En début de code..

Et

Application.screenupdating=true

Juste avant le end sub

merci, je viens juste de tester .... et c'est de la balle ! , j'ai gagné 3/4 du temps ! , c'est presqu' instantané maintenant.

Rechercher des sujets similaires à "range copier colonne"