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 -
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
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:
- Macro pour changer la copie d un fichier en ligne par colonne
- Changer dns - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Changer extension fichier - Guide
3 réponses
Salut michel .... ça baigne ;-)
pour Fmas
ce que j'ai compris : pour coller (en colonne) à partir de la ligne li
Cdlmnt
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
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.
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.
Bonjour
essaies ceci
Cdlmnt
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
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....
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....
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
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
cela fonctionne bien
Encore MERCI pour votre aide.
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Cdlmnt