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

Résolu/Fermé
FMas09600 Messages postés 26 Date d'inscription mercredi 20 février 2019 Statut Membre Dernière intervention 2 octobre 2019 - 28 févr. 2019 à 14:56
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 1 mars 2019 à 17:24
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 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
1 mars 2019 à 12:05
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 mercredi 20 février 2019 Statut Membre Dernière intervention 2 octobre 2019
1 mars 2019 à 14:07
MERCI ccm81 & Michel,

cela fonctionne bien

Encore MERCI pour votre aide.
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
1 mars 2019 à 17:24
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 mercredi 20 février 2019 Statut Membre Dernière intervention 2 octobre 2019
Modifié le 28 févr. 2019 à 16:16
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 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
28 févr. 2019 à 16:14
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 mercredi 20 février 2019 Statut Membre Dernière intervention 2 octobre 2019
28 févr. 2019 à 21:31
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
1 mars 2019 à 10:01
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 mercredi 20 février 2019 Statut Membre Dernière intervention 2 octobre 2019
Modifié le 1 mars 2019 à 12:05
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