Transfére de colonne d'une feuille à l'autre par VBA

Fermé
YOUPI!OUAI! Messages postés 92 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 13 juin 2016 - Modifié par pijaku le 15/12/2015 à 08:48
 YOUPI!OUAI! - 21 déc. 2015 à 12:01
Bonsoir à tous,

La formule ci-dessous me permet de sélectionner une ligne dans une feuille pour l'enregistrer dans une autre.

Sub Bouton1_Clic()
'Auteur: YOUPI!OUAI!
'Transfère les informations en feuil2 et comptabilise les nouvelles lignes
Dim DerCEL As Range
    Worksheets("feuil1").Range("C2:M2").Copy
        With Worksheets("feuil2")
        Set DerCEL = .Range("A" & Rows.Count).End(xlUp)
        DerCEL.Offset(1) = Val(DerCEL) + 1
        .Range("B" & DerCEL.Row + 1).Resize(1, 10).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
    End With
End Sub


Ce que je n'arrive pas à faire c'est de trouver les bons mots pour modifier cette formule afin de sélectionner une colonne (Disons feuil1 C5:C15) pour l'enregistrer en feuil2 de A3 à A13 par exemple.

Merci par avance

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
15 déc. 2015 à 09:14
Bonjour,

Tout simplement :
Sub Bouton1_Clic()
'Auteur: YOUPI!OUAI!
'Transfère les informations en feuil2 et comptabilise les nouvelles lignes
    Worksheets("feuil1").Range("C5:C15").Copy _
        destination:= Worksheets("feuil2").Range("A3:A13")
End Sub
0
YOUPI!OUAI! Messages postés 92 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 13 juin 2016 1
16 déc. 2015 à 01:13
Bonjour,,

Merci ça marche, mais la fonction est incomplète. Il est vrai que j'ai donné une explication incomplète.

En fait la macro que j'utilise permet de sélectionner une ligne en feuil1 pour l'enregistrée en feuil2 en ligne A. puis en ligne B puis en C... au fur et à mesure des enregistrements avec comptabilisation en début de ligne des enregistrements.

Ce que je veux c'est faire évoluer la MACRO qui sélectionnerait non plus une ligne mais une colonne comme vous l'avez proposé mais en gardant les propriétés que j'ai décrit ci-dessus.

J'ai bien essayé de les intégrer à la suite de la solution que vous me proposez, mais à la vérité je ne trouve pas la bonne syntaxe
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 15/12/2015 à 09:20
Bonjour
choix de la colonne à copier et restitution en feuille2 à la première line vide colonne A
essaies
Option Explicit
'-------------------------------------
Sub ccccc()
Dim plage, Ligvid As Long

With Sheets(1)
.Activate
plage = Application.InputBox(prompt:="selectionner avec la souris la plage à copier", Type:=8)
End With

With Sheets(2)
If .Range("A1") = "" Then
Ligvid = 1
Else
Ligvid = .Columns("A").Find("", .Range("A1")).Row
End If
.Cells(Ligvid, "A").Resize(UBound(plage), 1) = plage
.Activate
End With

End Sub


 Michel
0
YOUPI!OUAI! Messages postés 92 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 13 juin 2016 1
16 déc. 2015 à 01:17
Bonjour,
intéressant comme solution, mais je préférait l'activation de la macro par un clic sur bouton et puis surtout que l'enregistrement des colonnes suivantes ne ce fassent pas les uns sous les autres en colonne A mais les uns à côté des autre en B, C; D...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 16/12/2015 à 09:37
Bonjour

En supposant que tu restitues à partir de A2

Option Explicit
'-------------------------------------
Sub ccccc()
Dim Plage, Colvid As Integer

With Sheets(1)
.Activate
Plage = Application.InputBox(prompt:="selectionner avec la souris la plage à copier", Type:=8)
End With

With Sheets(2)
If .Range("A2") = "" Then
Colvid = 1
Else
Colvid = .Rows(2).Find("", .Range("A2")).Column
End If
.Cells(2, Colvid).Resize(UBound(Plage), 1) = Plage
.Activate
End With

End Sub




 Michel
0
YOUPI!OUAI! Messages postés 92 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 13 juin 2016 1
20 déc. 2015 à 23:28
Bonsoir Michel,

Désolé de revenir si tard à toi. Et désolé mais ta solution de convient pas.

En fait je crois que je n'est pas réussi à me faire comprendre, alors je te propose un fichier qui je l' espère sera plus explicite, et t'aidera à m'aider

https://www.cjoint.com/c/ELuwynlp6qh
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > YOUPI!OUAI! Messages postés 92 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 13 juin 2016
21 déc. 2015 à 09:01
Bonjour
Il faut bien te rendre compte que ce que tu demandes n'est pas forcément facile et que personne ne veut passer parfois plusieurs heures à essayer de résoudre un problème bénévolement pour se voir dire après coup « non vous n'avez pas compris mon problème (rarement, je n'ai pas bien expliqué, excusez moi) il faut en plus que.... »
0
YOUPI!OUAI! > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
21 déc. 2015 à 10:35
Bonjour michel,

Je regrette je ne voulais pas être vexant, Considère juste cela comme de la maladresse.
Etant encore profane dans la programmation VBA, les mots et codes me manques et je ne sais pas toujours comment les articuler entre eux. C'est idiot mais je m'était imaginé que la solution était simple, qu'un habitué à ce genre d'exercice serait glisser le bon code, le bon mot pour faire évoluer la macro.
Je me suis trompé, à l'évidence c'est beaucoup plus complexe que çà.
Pour revenir à mon problème, Tu as vu que le fichier s'ouvrai en feuil2. Il aurait été préférable qu'il s'ouvre en feuil1. il y a des informations. Qui peut-être peuvent faciliter la compréhension du projet dans sa globalité.

A te lire.

Et encore mil mercis pour le temps que toi et les autres me consacrez
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > YOUPI!OUAI!
21 déc. 2015 à 10:54
Ce n'est pas la complexité du code qui est en cause, mais le fait que tu ais des difficultés à exposer ce que tu veux; relis tes demandes avec du recul et tu en conviendras peut-être
0
C'est possible.
Dis moi, Qu'as-tu compris de ce que j'ai formulé. Peut-être je pourrai affiner?
As-tu pu ouvrir le fichier http://www.cjoint.com/c/ELuwynlp6qh?
0