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

YOUPI!OUAI! Messages postés 92 Statut Membre -  
 YOUPI!OUAI! -
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
A voir également:

3 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 728
 
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 Statut Membre 1
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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 Statut Membre 1
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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 Statut Membre 1
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318 > YOUPI!OUAI! Messages postés 92 Statut Membre
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318 > YOUPI!OUAI!
 
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
YOUPI!OUAI!
 
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