Coller des cellules sélectionnées en ligne sur la première ligne vide.

RemusV

XLDnaute Nouveau
Bonjour,

J'ai écrit ce code : (je débute)

Code:
Sub importation_formulaire()
Dim Formulairempli As String, Fichier As String
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Set wbdest = ActiveWorkbook

ChDrive CHEMIN
ChDir ("H:\blablablabla")
    
Fichier = Application.GetOpenFilename(", *xlWindows", 0, "Sélectionner le ficher de rendements souhaité")
If Fichier = "Faux" Then
    Msg = "Aucun fichier sélectionné. SVP, veuillez recommencer !"       
    Style = vbOKOnly    
    Title = "Abandon de la procédure !"   
    Response = MsgBox(Msg, Style, Title)
    Exit Sub 
Else
      Workbooks.OpenText Filename:=Fichier
    Formulairempli = ActiveWorkbook.Name 'On donne à une variable le nom de ce fichier qu'on vient d'ouvrir.
End If

Sheets("userform").Range("C10:C11"+ "autres cellules").Copy 
'je voudrais sélectionner plusieurs cellules
wbdest.Activate 'reactive recap_data_request
Sheets("Janvier").Select

Cells(65535, 1).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues 
'je voudrais que les cellules copiées soient collées en ligne sur la première ligne vide
End Sub

Donc voici mes deux problèmes :
1/Je n'arrive pas à séléctionner plusieurs cellules éparpillées sur une même feuille source.
2/ je n'arrive pas à coller ces cellules sur le fichier de destination, elles se collent les unes après les autres sur la colonne A.

Merci d'avance ! :)
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Coller des cellules sélectionnées en ligne sur la première ligne vide.

Bonsoir RemusV, bonsoir le forum,

Peut-être comme ça :
Code:
Sub importation_formulaire()
Dim Formulairempli As String, Fichier As String
Dim Msg As String, Style As VbMsgBoxStyle, Title As String, Response As VbMsgBoxResult
Dim cel As Range 'décalre la variable cel
Dim pl As Range 'déclare la variable pl (PLage)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
Dim i As Integer 'décalre la variable i (Incrément)

Set wbdest = ActiveWorkbook
ChDrive CHEMIN
ChDir ("H:\blablablabla")
    
Fichier = Application.GetOpenFilename(", *xlWindows", 0, "Sélectionner le ficher de rendements souhaité")
If Fichier = "Faux" Then
    Msg = "Aucun fichier sélectionné. SVP, veuillez recommencer !"
    Style = vbOKOnly
    Title = "Abandon de la procédure !"
    Response = MsgBox(Msg, Style, Title)
    Exit Sub
Else
    Workbooks.OpenText Filename:=Fichier
    Formulairempli = ActiveWorkbook.Name 'On donne à une variable le nom de ce fichier qu'on vient d'ouvrir.
End If
With Sheets("userform") 'prend en compte l'onglet "userform"
    Set pl = Application.Union(.Range("C10:C11"), .Range("plage_2"), .Range("Plage_3")) 'définit la plage pl (à adapter à ton cas)
End With 'fin de la prise en compte de l'onglet "userform"
wbdest.Activate 'reactive recap_data_request
Sheets("Janvier").Select
Set dest = Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest
i = 0 'définit la variable i
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
   dest.Offset(0, i).Value = cel.Value 'récupère dans dest la valeur de la cellule cel
   i = i + 1 'incrémente i
Next cel 'prochaine cellule de la boucle
End Sub
 

RemusV

XLDnaute Nouveau
Re : Coller des cellules sélectionnées en ligne sur la première ligne vide.

Bonjour,

Merci Robert c'est exactement ça. Je n'ai plus qu'a finir de mettre toutes mes cellules à copier mais tu as bien répondu à ma question !!!

Super !! :):)

A plus.
 

Discussions similaires

Réponses
1
Affichages
784

Membres actuellement en ligne

Statistiques des forums

Discussions
312 379
Messages
2 087 765
Membres
103 662
dernier inscrit
rterterert