VBA copie incrémentée

Bonsoir à tous,

Un petit soucis que je n'arrive pas à résoudre en vba.

Le code que je possède:

Set ws = Worksheets("Interface")

Set ws1 = Worksheets("Numéro Devis")

derlig = ws1.[D65536].End(xlUp).Row + 1

If derlig < 3 Then derlig = 3

ws.[K7:K12].Copy Destination:=ws1.Range("D" & derlig)

[D65536].End(xlUp).Offset(1, 0).Select

Ce code me permet de recopier les cellules K7 à K12 de la feuille "Interface", dans la première cellule vide de la colonne D de la feuille "Numéro Devis". Mes cellules à copier étant en colonne (colonne K), lorsque la macro colle ces cellules copiées, elle les collent en colonne également, or je voudrais qu'elle les colle sur la ligne.

c'est à dire:

Si 3 est le numéro de la ligne pour laquelle la première cellule de D est vide, K7=D3, K8=E3, K9=F3, K10=G3, etc.. Comment dois-je m'y prendre pour faire cela ? Je pense avoir un bon début avec le code mais ....

Merci d'avance !

Bonne soirée

Dans excel dans les collages spéciales il y a l'option collé en "transposé" c'est ça qu'il faut que tu integre dans ta macro

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

C'est le "Transpose:=True" qui te fera faire l'inversion

Bonsoir Frédéric,

Et concrètement je l'insère comment dans mon code (cf premier message) ?

Je ne vois vraiment pas où ...

Amicalement.

euh...comme ça de tête aucune idée mais c'est possible que tu joignes un fichier pour qu'on puisse tester differente façon d'obtenir le bon résultat ?


ou alors en essayant

Set ws = Worksheets("Interface")
Set ws1 = Worksheets("Numéro Devis")
derlig = ws1.[D65536].End(xlUp).Row + 1
If derlig < 3 Then derlig = 3
ws.[K7:K12].Copy ws1.Range("D" & derlig).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

Ca peu peut-être marché mais il me semble qu'il faut activer la feuille où il va y avoir le collage je ne suis pas très sur

Oui bien sur, voici le fichier

25classeur1.xlsx (9.31 Ko)

regarde le fichier joins et dis nous si cela te convient.

ctrl+k pour executer la macro

Que ferai-je sans les maestro d'excel comme toi !

Une dernière question, comment peut-on faire (toujours à partir du même fichier) pour donner un numéro de devis correspondant ?

Dans le tableau du fichier que tu m'as donné, il faudrait qu'en C3 soit marqué 02, c'est à dire incrémenter de +1 en C pour chaque ligne qu'on ajoute au tableau (je ne sais pas si je me suis bien fait comprendre).

J'ai réussi à me débrouiller avec la fonction

=SI(ESTTEXTE(D2);C1+1;"")

Merci quand même !

Content que ça te plaise,

tout dépend la fréquence d'utilisation tu pourras éventuellement automatiser d'autres tâches.

Les numéros de devis c'est je pense assez simpliste à coder quand il s'agit simplement de faire +1 a chaque fois

Rechercher des sujets similaires à "vba copie incrementee"