Microsoft 365 Simplifier une ligne de code VBA

Piksaw

XLDnaute Junior
Bonjour, je recherche a simplifier ce code car je dois entrer environ 100 ligne qui ce suive


Sheets("feuille2").Cells(ligne, 1).Value = Range("C7")
Sheets("feuille2").Cells(ligne, 2).Value = Range("C8")
Sheets("feuille2").Cells(ligne, 3).Value = Range("C9")
Sheets("feuille2").Cells(ligne, 4).Value = Range("C10")

quelque chose qui dirait copie a partir de la ligne 2 la valeur C7 et ensuite copie la valeur C8 à la ligne 3 etc.

Sheets("feuille2").Cells(ligne, 1:4 ).Value = Range("C7:C10")

je sais pas si c'est possible de faire cela
 

Staple1600

XLDnaute Barbatruc
Bonsoir

SI j'ai bien compris la donne
VB:
Sub test()
Application.ScreenUpdating = False
For i = 7 To 100 Step 4
Feuil2.Cells(Rows.Count, 1).End(3)(2).Resize(, 4) = Application.Transpose(Cells(i, 3).Resize(4))
Next
End Sub
EDITION: j'ai modifié pour bien commencé en C7
Au départ, lors de mon test, je commençais en C1
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Certes

Mais le petit gars du#3 aurait pu voir le#2 et faire un petit coucou xldien au petit gars du #2.
(petit coucou que le #2 a fait au #3)

D'où ce questionnement sur le problème récurrent de rafraichissement de pages sur le forum.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Chez moi #2 donne ceci
Maintenant à Piksaw de préciser si c'est le résultat escompté
copieC7.png
 

TooFatBoy

XLDnaute Barbatruc
Au temps pour moi : en #3 je fais la copie dans le sens inverse de ce qui demandé !

Ceci doit copier dans le sens demandé...
VB:
    With Sheets("feuille2")
        .Range("C7:C10").Copy
        .Cells(ligne, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    End With
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re,

Piksaw
Je plussoie aux propos de Marcel32
On aurait gagné du temps si il y avait eu un fichier exemple dès le départ

Précisions
Le code de Marcel et le mien fonctionnaient.
Maintenant qu'ils ne fassent pas ce que tu voulais c'est autre chose.

Sur la base de ton fichier exemple
(j'ai donc testé le code ci-dessous)
Voila une façon de faire
VB:
Sub test_3()
Dim aCell, vVal(), i&
aCell = Split("C7 E7 C10 E10 C13 E13 C16 E16 C19 E19 C22 E22")
ReDim vVal(UBound(aCell))
For i = LBound(aCell) To UBound(aCell)
vVal(i) = Feuil2.Range(aCell(i)).Value
Next
Feuil10.Cells(Rows.Count, 2).End(xlUp)(2).Resize(, 12) = vVal
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Cela, c'est si j'étais Piksaw ;)
Mais il a été porté à ma connaissance qu'il semblerait que je sois moi.
Donc si je suis moi, bien évidemment, j'agencerai mes colonnes pour faire en sorte que mo tableau aCell soit tel que je l'ai écris dans le message#12

Mais tu as raison en relisant le fil, je vois que j'ai oublie E16 et C19
Merci Marcel32
(je corrige de ce pas)

Si PickSaw ne veut pas toucher à l'ordre de ses colonnes, il prendra ta correction
 

Discussions similaires

Réponses
0
Affichages
129

Statistiques des forums

Discussions
312 046
Messages
2 084 854
Membres
102 688
dernier inscrit
Biquet78