Copier des donnees d'une feuille jusqu'à la derrière ligne

Résolu/Fermé
Philour01 - Modifié par Philour01 le 6/05/2013 à 01:43
 Philour01 - 5 juin 2013 à 14:36
Bonjour,

Je vous soumets mon problème et vous remercie d'avance pour votre (vos) réponses d'experts. Je souhaite copier des données d'un tableau d'une feuille sur une autre feuille jusqu'à la dernière ligne. A noter une particularite avec des cellules qui comprennent des fonctions mais des resultats vides et ces cellules vides de résultats mais avec des fonctions (=si par exemple .... etc) je ne souhaite pas les copier.
Un exemple pour comprendre mon besoin :
- Tableau de 6 colonnes (composées de chiffres ou lettres) avec 15 lignes
- La derniere ligne avec cellule pleine (c'est à dire disposant d'un resultat donné par la fonction de calcul qui est dans la cellule) est la ligne 10 (mais cela change regulierement et peut être ensuite la ligne 8....)
- Attention, j'ai des fonctions dans les autres cellules (lignes 11 à 15) mais qui ne donnent pas de résultats

Mon problème est que mon code copie et colle toutes les lignes qui ont des fonctions y compris si la cellule est vide (en apparence seulement car elle dispose d'une fonction mais l'interprete comme non vide.)


A voir également:

76 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
17 mai 2013 à 14:03
Re,

Alors je passe le statut de la discussion en résolu
0
Bonjour Mike,
Dans le prolongement de cette macro, je souhaite maintenant effacer d'un clic toutes les lignes copiées sur la feuille édit.
Ma fonction fonctionne en partie mais sur une seule ligne de tableau à effacer, empiète sur le texte qui est juste en dessous du tableau et efface du texte.

Merci pour ton aide

Dim I As Long
Dim Plage As Range
Set Plage = Range("E159:E" & Range("E160").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
Plage.Cells (I).EntireRow.Delete
Next
End Sub
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
18 mai 2013 à 18:15
Re,

Foo et Philour, es ce la même discussion ou une nouvelle discussion ?
0
Bonjour Mike,
Dans cette discussion, c'est moi qui suis à l.origine du post qui est parti avec le nom de Foo !!???
Oui, c'est la suite de la discussion entamée et qui est classée en résolue
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
21 mai 2013 à 10:57
Re,

tu veux copier sur le fichier Projet1.xls onglet Récap toutes les lignes des trois fichiers projets1 projet2 et projet3 feuille nommées sur les trois fichiers Liste, c'est cela

ces trois fichiers se trouvent ils dans le même répertoire
0
Oui, copier toutes les lignes mais par projet c'est à dire dans nomenclature 1 les lignes de projet1, dans nomenclature 2 les lignes de projet 2 .... (Voir feuille Récap)
Les 3 fichiers se trouvent dans le même répertoire.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 22/05/2013 à 16:23
Re,

Récupère le fichier ZIP, ouvre le et sort le dossier Philour

Ouvre le fichier Récap, clic sur le bouton, les lignes sont insérées et copiées depuis les trois fichiers Projet1, Projet2 et Projet3

https://www.cjoint.com/c/CEwqt57pv5e

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Merci Mike, super boulot.
Bon je regarde la transposition sur mon fichier en sachant que je me suis sans doute mal exprimé mais les données sont les suivantes :
- RÉCAP est une feuille (et non pas un fichier) qui se trouve dans les 3 projets.
- Le transfert des données ne se fait donc que sur la seule feuille RECAP de projet1 et non pas sur un fichier intitulé RECAP.

Bonne soirée
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
22 mai 2013 à 21:45
Re,

Ce n'est pas un problème, va dans le visual basic, double clic sur module et tu trouvera en début de code ces lignes

Const Fichier_Réception As String = "Récap.xls"
Const Feuille_Réception As String = "Recap"
Const Fichier_Cible_1 As String = "Projet1"
Const Fichier_Cible_2 As String = "Projet2"
Const Fichier_Cible_3 As String = "Projet3"
Const Feuille_Cible As Variant = "Feuil1"


sans te tromper entre les guillemets tu remplace les noms qu'il convient
dans cette ligne tu remplaces le nom du fichier "Récap.xls" par celui du fichier qui contient la feuille Récap ex. "titi.xls"

Const Fichier_Réception As String = "Récap.xls"

dans cette ligne d'après ce que tu m'écris le nom de la feuille est bien Récap, sinon change le par le nom de la feuille sur la quelle tu souhaites transférer les données
Const Feuille_Réception As String = "Recap"

ces trois lignes doivent contenir les noms de tes fichier sans les extensions
Const Fichier_Cible_1 As String = "Projet1"
Const Fichier_Cible_2 As String = "Projet2"
Const Fichier_Cible_3 As String = "Projet3"

cette dernière est le nom qui apparemment est commun aux trois fichiers et est le nom de la feuille à copier
Const Feuille_Cible As Variant = "Feuil1"



si tu n'y arrive pas, donne moi

le nom du fichier sur lequel sont copiées les données avec l'extension

le nom de la feuille sur laquelle sont copié les données des autres fichier

le nom de chaque fichier sur lequel on extrait le données avec l'extension

et le nom de la feuille sur lequel on extrait les données qui est je crois la même sur les trois fichiers
0
http://cjoint.com/?CEytHO8xXFt
Voila la macro que tu as développé et qui fonctionne super bien (et aménagé par mes soins avec les cellules fusionnées).
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
24 mai 2013 à 19:48
Re,

donc tu es satisfait tout est pour le mieux, si tu dois changer le nom de tes feuilles il suffit dans le code de changer uniquement les noms dans tes constantes en début de code

Excel n'est pas si terrible que ça, il suffit de savoir lui demander gentiment
0
Oui, as tu lu le post précédent pour décaler les lignes de textes vers le bas, le fichier joint montrant mon besoin avec le numéro de lignes ?
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
24 mai 2013 à 21:43
Re,

je ne comprends pas ce que tu veux faire

"Lorsque ma nomenclature devient importante, il faudrait que je puisse décaler vers le bas les lignes Z soit à partir de la ligne 237 pour que cette ligne 237 soit en début de page. "
0
Bonsoir Mike,
Dans le fichier joint du précédent post, apparaît en jaune un texte
ZZZZZZZZZZZZZ de la ligne 237 à 263. Ce texte à été décalé suite à ta macro qui a insérée les lignes du tableau que je veux copier.
Est-il possible dans la continuité de ta macro (jointe au dossier) de prévoir une condition du type : si la première ligne du texte ZZZZZZZZZ arrive sur la ligne 237, je décale le texte ZZZZZZZZZZ en bas de plusieurs lignes manière à ce qu'il apparaisse en début de page suivante à partir de la ligne 247 ?
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
28 mai 2013 à 13:30
Re,

Tu peux m'en dire un peu plus sur ta ligne ZZZZZZZZZZZZZZZZZZZ
es ce que le texte est toujours le même comme Nomenclature du Projet par exemple, il faudrait pouvoir sélectionner la cellule à partir d'un critère pour pouvoir insérer le saut de page

0
Bonjour,

Oui, le texte est identique sur la première ligne Z = "Dispositions particulières et clauses diverses"
Les 26 lignes suivantes peuvent parfois être différentes

Il faudrait que je dispose de 3 conditions (ensuite à ma main pour faire évoluer)
si la ligne 237 = "dispositions.....", saut de page de tant
si la ligne 236 = "dispositions.....", saut de page de tant
..........
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
28 mai 2013 à 17:56
Re,

Il faut traduire ce que tu veux
si la ligne 237 = "dispositions.....", saut de page de tant

saut de page de tant ?
si en cellule 237 la cellule contient "dispositions etc .... entre quelle et quelle ligne doit se trouver le saut de page
idem pour cellule 236

et pour la 3éme condition, écrit en clair, vu de l'extérieur il n'est pas évident de comprendre
0
Tu as raison Mike, pas assez précis.

Essayons de simplifier :

Le texte jusqu'à la ligne 214 pas de problème d'insertion ....
À partir de la ligne 215, insérer un saut de page sur la ligne inférieure et décaler le texte 9 lignes plus bas donc dans ce cas, positionner le texte en ligne 222.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
29 mai 2013 à 18:55
Re,

Je ne t'oublie pas mais pas trop le temps,
le code est

Sub DécaleDisposition()
On Error Resume Next
Windows(Fichier_Réception).Activate
Sheets(Feuille_Réception).Activate
y = "Dispositions*"
With Worksheets(Fichier_Réception) '.Range("B:B")
Set k = .Find(y, LookIn:=xlValues)
If Not k Is Nothing Then
firstAddress = k.Address
End If
End With
If Range(firstAddress).Row >= 216 And Range(firstAddress).Row <= 235 Then
Range(firstAddress).Offset(-1, 0).Resize(27).EntireRow.Insert
End If
End Sub

je l'ai intégré dans le fichier Recap, comme la dernière fois, retire le dossier Recap du ZIP avant de le tester

https://www.cjoint.com/c/CEDs1XrW0Ba
0
Bonjour Mike,
Je pense que nous sommes proches de la réalisation et te remercie beaucoup pour ton aide.

J'ai un problème de transfert sur mon fichier.
Pourrais-tu aménager le code en le simplifiant de la manière suivante.

1) Le fichier "Récap.xls" n'existe pas, la réception se faisant sur la seule feuille "Récap" du fichier "projet1.xls. Je dis seule feuille car cette feuille existe aussi dans le fichier "projet2.xls".

2) Limiter le système sur 2 fichiers uniquement (projet1.xls et projet2.xls). A noter que demain l'extension pourrait être xltm. Donc on ne rajoute sur la feuille recap du projet1.xls que la nomenclature de la feuille edit [ou feuille1 du projet1.xls] et [la feuille edit ou feuille1] du projet2.xls.
Effectivement, tu as rajouté une feuille1 dans les 2 fichiers alors que nous disposons déjà de la nomenclature sur Edit ou liste dans ma présentation d'origine. Pourquoi cette feuille1 qui reprend les mêmes éléments ?

Edit nous donne déjà les résultats de la nomenclature du projet1 donc la feuille récap du fichier projet1.xls doit reprendre cette nomenclature du projet1 en la basculant de la feuille edit et aller chercher dans projet2 la nomenclature de la feuille edit pour la compiler en dessous.

3) les fichiers restent ouverts !!!

4) J'ai un message lors de l'ouverture du projet1.xls... sur les liaisons avec d'autres fichiers à mettre à jour ?
0