Macro pour changer la copie d un fichier en ligne par colonne

Résolu
FMas09600 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai actuellement une macro qui enregistre une saisie de la feuille 1 ( D2 à D24) vers la feuille 2 mais sur la 1° ligne libre. je souhaiterai faire la même chose mais que ces données soient enregistrer dans la 1° colonne libre.
ci dessous la formule actuelle:
Sub EnregistrerLigne()

' Enregistrer une Ligne
'
Dim i%
Application.ScreenUpdating = False
'--- Contrôle champs saisis ---
With Sheets("feuille1")
For i = 2 To 24

If .Cells(i, "D") = "" Then
.Cells(i, "D").Activate
MsgBox ("Champ " & .Cells(i, "e") & " Obligatoire")
Exit Sub
End If
Next i

'--- enregistre ---
Application.ScreenUpdating = False
.Range("D2:D24").Copy
Sheets("feuille 2").Range("a65536").End(xlUp)(2) _
.PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
.Range("D2:D24").ClearContents

End With
End Sub

que me faut il modifier pour effectuer ce changement?
En vous remerciant
Cordialement
A voir également:

3 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Salut michel .... ça baigne ;-)
pour Fmas
ce que j'ai compris : pour coller (en colonne) à partir de la ligne li
Sub ok()
Dim co As Long, li As Long
li = 4
Sheets("feuille 1").Range("D2:D24").Copy
Sheets("feuille 2").Select
co = Cells.Find("*", , , , xlByColumns, xlPrevious).Column + 1
Cells(li, co).Select
Selection.PasteSpecial Paste:=xlPasteValues
' etc ...
End Sub

Cdlmnt
1
FMas09600 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
MERCI ccm81 & Michel,

cela fonctionne bien

Encore MERCI pour votre aide.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)

Cdlmnt
0
FMas09600 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Michel,

j'ai un message d'erreur :
Erreur de compilation: Attendu : paramètre nommé
et ces 2 lignes sont en rouge:
Sheets("Détails Brt").Range("a65536").End(xlUp)(2) _
.PasteSpecial Paste:=xlPasteValues,

il s'agit d'une vielle macro que j'ai repris pour la remettre dans un nouveau dossier. si tu as mieux, je suis preneur.

pour être précis, avant cette Macro de cliquer sur cette macro, j'utilise une autre macro qui insère la date et qui rechercher le dernier n° d'ordre dans la Feuille 2 et qui l’insère dans la feuille 1 en position D2.

ENCORE MERCI.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

essaies ceci
Sub ok()
Dim co As Long, li As Long
li = 4
Sheets("feuille 1").Range("D2:D24").Copy
Sheets("feuille 2").Select
co = Cells(li, Columns.Count).End(xlToLeft).Column + 1
Cells(li, co).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
' etc ...
End Sub

Cdlmnt
0
FMas09600 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Merci CCM81,
la mise à la colonne suivante fonctionne bien mais ce que je souhaite , c'est de "coller" les données dans la même colonne ( D2 à D24 puis E2 à E24, puis F2 à F24, ... )

merci d'avance
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour Fmas,
salut CCM81, ca va?

pour Fmas

Que veut tu dire dans ce dernier message?
tu voudrais que sur la feuille 2 , la copie soit empilées sur une seule colonne ? si Oui, la quelle?

Parce que quand tu écris: "les données dans la même colonne ( D2 à D24 puis E2 à E24, puis F2 à F24, ... ) " cela est contradictoire m^me colonne <--> 3 colonnes D,E,F....
0
FMas09600 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour à vous deux et merci pour votre aide.
ce que souhaite:
dans la feuil1, je saisie des données dans les cellules D2 à D24 et je clique sur le bouton "enregistrer".
ces données vont s'écrire dans la première colonne libre de la feuil2.
voici le résultat attendu:
Coll A coll B coll C coll D collE .......
N° ORDRE 165 166 167
N° Affaire OS 1 11 22
Projet 2 12 23
Commune 3 13 24
Désignation 4 14 25
Prestations 5 15 26
Date OS 01/03 03/9 01/03
Décompte 7 10 15
Montant 8 18 17
0