Copier/Coller seulement cellules remplies d'une colonne VBA

yenyak

XLDnaute Nouveau
Bonjour,

Encore un débutant en VBA...
Voilà, je souhaite copier/coller une plage de cellule non définie d'un tableau vers un autre tableau : en fait je mets des données dans un tableau mais il n'y en a jamais le même nombre, cependant la 1ère ligne reste toujours la même.

Donc je voulais savoir s'il était possible de faire un copier/coller seulement pour les cellules où il y a des données dans mon tableau ?

A savoir que j'ai plusieurs colonnes à copier/coller de mon premier tableau vers le second.

J'ai déjà utilisé l’enregistreur de Macro, mais ce n'est optimal car je suis obligé de copier toute ma colonne pour bien faire, alors j'aimerais trouver un code qui me permette de faire cela.

Le premier tableau est celui avec les données dont le nombre varie, seules les données sont copier, pas le titre de la colonne.
Les données devant être copier sont celles des colonnes : Date, Cours Clotûre, Volume

Le second tableau reçoit les valeurs précédentes respectivement dans les colonnes non colorées :

Je vous mets un fichiers pour l'exemple.

J'espère avoir réussi à me faire comprendre...

Merci d'avance
 

Pièces jointes

  • Exemple.xlsx
    87.2 KB · Affichages: 226
  • Exemple.xlsx
    87.2 KB · Affichages: 230
  • Exemple.xlsx
    87.2 KB · Affichages: 235
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Copier/Coller seulement cellules remplies d'une colonne VBA

Bonjour yenyak et bienvenue sur XLD

Ce serait plus simple avec un fichier exemple.
Comme cela t'as été suggéré, quand tu as crée ton fil de discussion :rolleyes:
Afin de faciliter la compréhension de votre demande il est conseillé de placer votre exemple et explications dans un fichier. Pour l'envoyer, cliquez sur le bouton "Gérer les pièces jointes" dans la zone "Options supplémentaires" ci-dessous.
Ensuite cliquez sur le bouton "Parcourir", et sélectionnez-le (après l'avoir compressé s'il dépasse les 250Ko).Et si vous ne l'avez pas encore lue... il est encore temps : Lien supprimé
PS: l'ayant déjà écrit dans un autre fil, bien obligé de le récrire ici :rolleyes:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Copier/Coller seulement cellules remplies d'une colonne VBA

Re

Un classeur serait mieux

et tu as la méthode dans mon précédent message pour joindre une pièce jointe sur le forum.

PS: Ce n'est pas à nous de créer des fichiers exemples, mais au demandeur.
 

yenyak

XLDnaute Nouveau
Re : Copier/Coller seulement cellules remplies d'une colonne VBA

Bon et bien j'ai réussi, mais ce n'est pas optimal : j'ai rentré ce code

Code:
Sub Insertion_Action()

    Worksheets("Action").Range("C2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Destination:=Worksheets("Séries chronologiques").Range("A17")
    
    Worksheets("Action").Range("G2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Destination:=Worksheets("Séries chronologiques").Range("D17")
    
    Worksheets("Action").Range("H2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Destination:=Worksheets("Séries chronologiques").Range("J17")

End Sub

Le problème est qu'avec cela je suis obligé de mettre mes données dans un tableau qui a la même mise en forme que celui dans lequel je souhaite intégrer mes données.
Ce n'est donc pas très pratique.

Quelqu'un aurait une idée de la façon dont je peux intégrer mes données peu importe la mise en forme de ma feuille de base ?

Merci
 

Staple1600

XLDnaute Barbatruc
Re : Copier/Coller seulement cellules remplies d'une colonne VBA

Re


EDITION: Voici un début de piste , je te laisse continuer sur la même voie
Code:
Sub test()
Dim tc, tg
With Sheets("Tableau de données")
tc = .Range("C2:C" & .[C65536].End(xlUp).Row)
tg = .Range("G2:G" & .[G65536].End(xlUp).Row)
End With
Feuil2.[A3].Resize(UBound(tc)) = tc
Feuil2.[D3].Resize(UBound(tc)) = tg
End Sub

Juste en passant:
Privilégie l'envoie de PJ *.xls plutot que *.xlsm
(car tout le monde sur le forum n'est pas encore sous XL 2007 ou 2010)
Ainsi plus de monde pourra te venir en aide.

PS: Merci d'avoir supprimer tes images et de les avoir remplacer par un fichier Excel.
 
Dernière édition:

yenyak

XLDnaute Nouveau
Re : Copier/Coller seulement cellules remplies d'une colonne VBA

Trop bien !! Ca fonctionne nickel, merci beaucoup !

Par contre j'aurais aimé avoir quelques détails pour bien comprendre le code :

- les variables tc et tg ne sont pas caractérisées (ex: tc as integer...), c'est parce qu'elles sont définies dans l'instruction with ?
- Quelles différence y'a-t il entre "Sheets" et "Worksheet" ?
- Enfin, pourquoi dans "tc = .Range("C2:C" & .[C65536].End(xlUp).Row)" il y a "xlUp" et non pas "xlDown" ?

Je ne sais pas si c'est l'endroit adéquat, mais en tout cas merci pour les réponses !
 

Staple1600

XLDnaute Barbatruc
Re : Copier/Coller seulement cellules remplies d'une colonne VBA

Bonsoir


Dim tc
équivalent à Dim tc As Variant
- Quelles différence y'a-t il entre "Sheets" et "Worksheet"
Si tu es pressé d'avoir l'info : ALT+F11 puis F1
(car là j'allais diné)

xlUp: pour trouver la dernière cellule non vide en partant du bas.

Bon appétit
 
Dernière édition:

Discussions similaires

Réponses
15
Affichages
511
Réponses
6
Affichages
410

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87