Copier des donnees d'une feuille jusqu'à la derrière ligne
Résolu/Fermé
A voir également:
- Copier des donnees d'une feuille jusqu'à la derrière ligne
- Aller à la ligne excel - Guide
- Copier une vidéo youtube - Guide
- Apparaitre hors ligne instagram - Guide
- Vente en ligne particulier - Guide
- Super copier - Télécharger - Gestion de fichiers
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
10 mai 2013 à 14:17
10 mai 2013 à 14:17
Re,
es ce que tu te débrouilles ou faut il que je t'adapte le code
es ce que tu te débrouilles ou faut il que je t'adapte le code
Merci de m'adapter le code car je n'en ai pas la compétence. Je te ferai un retour sur la reprise du code dans mon fichier.
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 10/05/2013 à 23:43
Modifié par Mike-31 le 10/05/2013 à 23:43
Re,
alors voila ton fichier
Si tu vas faire un tour dans le Visual Basic (clic droit sur le bouton/Affecter une Macro/Modifier) cela t'amène directement au code VBA et en début de code tu remarqueras ces deux lignes.
Si tu changes les noms de tes onglets il faudra également changer les noms de tes feuilles dans ces deux lignes A L'IDENTIQUE
sinon ton code plantera
Const Feuille_Origine As String = "OGDAB"
Const Feuille_Destination As Variant = "Edit5"
ton fichier
https://www.cjoint.com/c/CEkxOZD6Ck9
Si tu veux, il est possible de compléter le code avec un enregistrement automatique, enfin tu vois
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
alors voila ton fichier
Si tu vas faire un tour dans le Visual Basic (clic droit sur le bouton/Affecter une Macro/Modifier) cela t'amène directement au code VBA et en début de code tu remarqueras ces deux lignes.
Si tu changes les noms de tes onglets il faudra également changer les noms de tes feuilles dans ces deux lignes A L'IDENTIQUE
sinon ton code plantera
Const Feuille_Origine As String = "OGDAB"
Const Feuille_Destination As Variant = "Edit5"
ton fichier
https://www.cjoint.com/c/CEkxOZD6Ck9
Si tu veux, il est possible de compléter le code avec un enregistrement automatique, enfin tu vois
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Bonjour Mike,
Je viens de tester et ton fichier joint fonctionne bien. Encore merci !
Je pensais que tu allais adapter le code pour que le collage des lignes se fasse à partir de la ligne 178 suivant mon dernier mail et fichier joint (mais est ce possible) ? En effet, le tableau figure en 3 ieme page de mon fichier.
Par ailleur, le transfert des lignes copie tout le tableau (dont les cellules "vides") jusqu'à la 54 iem ligne si je mets du texte à recopier à partir de la 56 iem ligne.
Peut-on en VBA copier ( transférer) que les lignes qui ont un résultat donne par la formule de calcul et passer au texte qui figure juste après le tableau ?
En clair, j'ai un tableau qui comprend 54 lignes au total
Certaines en commençant toujours en haut du tableau donnent des résultats liées aux formules de calcul et ce sont uniquement ces lignes avec du resultat que je souhaite transférer dans un onglet de 3 page au niveau de la ligne 178.
L'idéal étant de voir ces transferts décaler vers le bas le texte qui figure en bas du tableau. ( objet de mon précédent fichier)
Cordialement
Je viens de tester et ton fichier joint fonctionne bien. Encore merci !
Je pensais que tu allais adapter le code pour que le collage des lignes se fasse à partir de la ligne 178 suivant mon dernier mail et fichier joint (mais est ce possible) ? En effet, le tableau figure en 3 ieme page de mon fichier.
Par ailleur, le transfert des lignes copie tout le tableau (dont les cellules "vides") jusqu'à la 54 iem ligne si je mets du texte à recopier à partir de la 56 iem ligne.
Peut-on en VBA copier ( transférer) que les lignes qui ont un résultat donne par la formule de calcul et passer au texte qui figure juste après le tableau ?
En clair, j'ai un tableau qui comprend 54 lignes au total
Certaines en commençant toujours en haut du tableau donnent des résultats liées aux formules de calcul et ce sont uniquement ces lignes avec du resultat que je souhaite transférer dans un onglet de 3 page au niveau de la ligne 178.
L'idéal étant de voir ces transferts décaler vers le bas le texte qui figure en bas du tableau. ( objet de mon précédent fichier)
Cordialement
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
11 mai 2013 à 22:16
11 mai 2013 à 22:16
Salut,
Je ne comprends pas tout tes dires, en fait tu veux coller les lignes non vide de ton tableau principal vers l'autre feuille et les coller au dessous de la ligne 178
C'est bien cela ?
Dans le tableau principal de 54 lignes peut il y avoir des lignes vides entre les lignes à copier ?
Au passage, peut il y avoir des options de collage (texte en gras par exemple ou cellule en couleur etc ...)
Lorsque je te proposais l'enregistrement automatique, en fait on peut insérer dans le code un enregistrement après le collage des donnés ce qui évite l'oublie de la sauvegarde mais qui peut présenter un inconvénient dans le cas ou on souhaites fermer sans enregistrer, voila c'est un choix
Je ne comprends pas tout tes dires, en fait tu veux coller les lignes non vide de ton tableau principal vers l'autre feuille et les coller au dessous de la ligne 178
C'est bien cela ?
Dans le tableau principal de 54 lignes peut il y avoir des lignes vides entre les lignes à copier ?
Au passage, peut il y avoir des options de collage (texte en gras par exemple ou cellule en couleur etc ...)
Lorsque je te proposais l'enregistrement automatique, en fait on peut insérer dans le code un enregistrement après le collage des donnés ce qui évite l'oublie de la sauvegarde mais qui peut présenter un inconvénient dans le cas ou on souhaites fermer sans enregistrer, voila c'est un choix
Bonsoir Mike,
Oui, c'est cela, c'est un peu compliqué et je ne suis pas très clair. Désolé !
Oui, l'objectif est de copier uniquement les cellules non vides (de résultats mais elles disposent en général de formules avec un résultat égale à "" et je ne souhaite pas copier ces formules).
Oui, il faut les copier à partir du début du tableau de l'onglet edit5 ligne 178 et se limiter à 3 lignes copiées par exemple si le tableau ne comprend que 3 lignes ....
Immédiatement en dessous, je dois retrouver les textes en place donc à décaler (tous) vers le bas au fur et à mesure de l'ajout de lignes du tableau.
Non, il ne peut pas y avoir de lignes vides entre les lignes à copier mais je dois pouvoir effacer une ligne copiée ( si possible).
Non, pas de formatage des cellules copiées et collées (gras...)
Oui, je suis intéressé de voir le code relatif à l'enregistrement automatique (quitte à le désactiver ensuite si nécessaire avec Rem)
Merci pour tout.
Oui, c'est cela, c'est un peu compliqué et je ne suis pas très clair. Désolé !
Oui, l'objectif est de copier uniquement les cellules non vides (de résultats mais elles disposent en général de formules avec un résultat égale à "" et je ne souhaite pas copier ces formules).
Oui, il faut les copier à partir du début du tableau de l'onglet edit5 ligne 178 et se limiter à 3 lignes copiées par exemple si le tableau ne comprend que 3 lignes ....
Immédiatement en dessous, je dois retrouver les textes en place donc à décaler (tous) vers le bas au fur et à mesure de l'ajout de lignes du tableau.
Non, il ne peut pas y avoir de lignes vides entre les lignes à copier mais je dois pouvoir effacer une ligne copiée ( si possible).
Non, pas de formatage des cellules copiées et collées (gras...)
Oui, je suis intéressé de voir le code relatif à l'enregistrement automatique (quitte à le désactiver ensuite si nécessaire avec Rem)
Merci pour tout.
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
11 mai 2013 à 23:01
11 mai 2013 à 23:01
Re,
On est loin de la demande initiale et cela se complique, explique moi cette ligne de ta réponse
" Oui, il faut les copier à partir du début du tableau de l'onglet edit5 ligne 178 et se limiter à 3 lignes copiées par exemple si le tableau ne comprend que 3 lignes .... "
onglet Edit5 est l'onglet principal, on copie les lignes non vide par groupe de 3 avec les entête de tes colonnes REF USAGE SURF DEV etc ...
sur l'autre feuille au dessous de la ligne 178 en laissant une ligne vide entre chaque collage de 3 lignes plus la ligne des entête au dessus
c'est cela, j'ai bien compris
On est loin de la demande initiale et cela se complique, explique moi cette ligne de ta réponse
" Oui, il faut les copier à partir du début du tableau de l'onglet edit5 ligne 178 et se limiter à 3 lignes copiées par exemple si le tableau ne comprend que 3 lignes .... "
onglet Edit5 est l'onglet principal, on copie les lignes non vide par groupe de 3 avec les entête de tes colonnes REF USAGE SURF DEV etc ...
sur l'autre feuille au dessous de la ligne 178 en laissant une ligne vide entre chaque collage de 3 lignes plus la ligne des entête au dessus
c'est cela, j'ai bien compris
Erreur de ma part Mike, je voulais dire on colle sur edit5
récapitulons et merci pour ta patience !
On dispose d'un fichier qui comprend plusieurs onglets dont notamment :
- un onglet OGDAB (conservons ce nom) qui comprend un tableau de 54 lignes et 8 colonnes composé de cellules avec des formules de calcul qui donne des résultats (numériques, alphabétiques ou pas de résultat, soit "").
Bien. Je souhaite copier uniquement les lignes pleines de résultats <>"" de OGDAB (des 6 premieres colonnes uniquement ) sur l'onglet edit5 (qui est un onglet qui me sert d'édition papier) qui comprend plusieurs feuilles composées de textes.
Le "coller" des lignes pleines doivent se mettre en place à partir de la ligne 178 (voir mon précédent fichier joint qui montre tout cela).
3 est un exemple et non pas un groupe à coller
Le fichier peut comprendre 5 lignes de cellules pleines de résultats <> de "" alors on copie d'OGDAB ces 5 lignes que l'on colle uniquement sur edit5 à partir de la ligne 178.
Si le tableau donne 20 lignes de cellules pleines de résultats <> de "" on copie les 20 lignes d'OGDAB que l'on colle sur edit5 ........
On ne laisse aucune ligne vide entre chaque collage sur le tableau elle se suivent comme sur le nouveau fichier que je t'envoie dans quelques minutes.
Bonne soirée
récapitulons et merci pour ta patience !
On dispose d'un fichier qui comprend plusieurs onglets dont notamment :
- un onglet OGDAB (conservons ce nom) qui comprend un tableau de 54 lignes et 8 colonnes composé de cellules avec des formules de calcul qui donne des résultats (numériques, alphabétiques ou pas de résultat, soit "").
Bien. Je souhaite copier uniquement les lignes pleines de résultats <>"" de OGDAB (des 6 premieres colonnes uniquement ) sur l'onglet edit5 (qui est un onglet qui me sert d'édition papier) qui comprend plusieurs feuilles composées de textes.
Le "coller" des lignes pleines doivent se mettre en place à partir de la ligne 178 (voir mon précédent fichier joint qui montre tout cela).
3 est un exemple et non pas un groupe à coller
Le fichier peut comprendre 5 lignes de cellules pleines de résultats <> de "" alors on copie d'OGDAB ces 5 lignes que l'on colle uniquement sur edit5 à partir de la ligne 178.
Si le tableau donne 20 lignes de cellules pleines de résultats <> de "" on copie les 20 lignes d'OGDAB que l'on colle sur edit5 ........
On ne laisse aucune ligne vide entre chaque collage sur le tableau elle se suivent comme sur le nouveau fichier que je t'envoie dans quelques minutes.
Bonne soirée
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
12 mai 2013 à 08:03
12 mai 2013 à 08:03
Re,
c'est bon je crois cerner le problème, petite dernière question sur l'onglet OGDAB
les lignes à copier sont elles regroupées (contiguës 6, 7, 8 etc) ou non exemple ligne 6, 10, 18 etc
ensuite à partir de la ligne 178 feuille EDIT5 on colle ces lignes à la suite et on insère autant de nouvelle lignes que de lignes collées
c'est bien cela
c'est bon je crois cerner le problème, petite dernière question sur l'onglet OGDAB
les lignes à copier sont elles regroupées (contiguës 6, 7, 8 etc) ou non exemple ligne 6, 10, 18 etc
ensuite à partir de la ligne 178 feuille EDIT5 on colle ces lignes à la suite et on insère autant de nouvelle lignes que de lignes collées
c'est bien cela
Bonjour Mike,
Si je comprends bien ta question, les lignes sont contiguës, c'est à dire que les résultats des formules OGDAB lorsqu'ils sont <> de "", se suivent donc ligne 6 - 7 -8 ... On ne peut avoir dans le tableau à copier une ligne 6 puis passer à la ligne 10 ou 18 avec des lignes vides entre. Les lignes précédentes à la ligne de résultat sont obligatoirement pleines. Exemple : Si j'ai 10 lignes à copier, j'ai obligatoirement les 9 lignes précédentes pleines (1.2.3.4.5.6.7.8.9) sans aucune ligne vide entre.
Ensuite on insère entre le texte et le début de la première ligne 178 toutes les autre lignes pleines à la suite.
Bon, il faut prévoir la possibilité d'effacer une ligne du tableau OGDAB qui soit alors automatiquement effacée dans le tableau edit5.
Si je comprends bien ta question, les lignes sont contiguës, c'est à dire que les résultats des formules OGDAB lorsqu'ils sont <> de "", se suivent donc ligne 6 - 7 -8 ... On ne peut avoir dans le tableau à copier une ligne 6 puis passer à la ligne 10 ou 18 avec des lignes vides entre. Les lignes précédentes à la ligne de résultat sont obligatoirement pleines. Exemple : Si j'ai 10 lignes à copier, j'ai obligatoirement les 9 lignes précédentes pleines (1.2.3.4.5.6.7.8.9) sans aucune ligne vide entre.
Ensuite on insère entre le texte et le début de la première ligne 178 toutes les autre lignes pleines à la suite.
Bon, il faut prévoir la possibilité d'effacer une ligne du tableau OGDAB qui soit alors automatiquement effacée dans le tableau edit5.
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 12/05/2013 à 22:20
Modifié par Mike-31 le 12/05/2013 à 22:20
Re,
je préfère travailler sur le fichier que j'ai refait, sans cellules fusionnées qui est toujours source à problème.
j'ai inséré l'enregistrement automatique en fin de procédure, pour l'instant l'action est neutralisée pour te faciliter les essaies.
Pour la rendre opérationnelle il suffit de supprimer l'apostrophe qui se trouve en début de ligne
'ActiveWorkbook.Save
le nouveau code compte les lignes à copier, insère le nombre nécessaire de lignes après la dernière ligne renseignée, copie les lignes dans les lignes insérées à la suite, lorsque tu auras libéré l'enregistrement, l'enregistrement sera automatique.
pour te permettre de voir l'insertion de ligne j'ai colorisé en jaune la cellule B179, les données s'enregistreront entre la cellule B178 et cette cellule jaune
https://www.cjoint.com/c/CEmwtzTIhaD
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
je préfère travailler sur le fichier que j'ai refait, sans cellules fusionnées qui est toujours source à problème.
j'ai inséré l'enregistrement automatique en fin de procédure, pour l'instant l'action est neutralisée pour te faciliter les essaies.
Pour la rendre opérationnelle il suffit de supprimer l'apostrophe qui se trouve en début de ligne
'ActiveWorkbook.Save
le nouveau code compte les lignes à copier, insère le nombre nécessaire de lignes après la dernière ligne renseignée, copie les lignes dans les lignes insérées à la suite, lorsque tu auras libéré l'enregistrement, l'enregistrement sera automatique.
pour te permettre de voir l'insertion de ligne j'ai colorisé en jaune la cellule B179, les données s'enregistreront entre la cellule B178 et cette cellule jaune
https://www.cjoint.com/c/CEmwtzTIhaD
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Top génial, c'est exactement ce que je recherchais.
Ton fichier fonctionne parfaitement et correspond à mon attente.
Tu es performant dans ton domaine et altruiste. Bravo !!
Merci pour tout
Je regarde le transfert sur mon fichier de l'ensemble de ton code et te tiens au courant sur son fonctionnement. Effectivement j'ai eu quelques difficultés sur le code précédent copié avec un transfert des feuilles d'origine de ton fichier et j'avais un message d'erreur !?
J'aurai ensuite peut être besoin d'une petite évolution sur ce fichier (cumul de 2, voir 3 tableaux comme celui la sur un onglet récapitulatif) que je te soumettrai des que mon application sera opérationnelle avec cet excellent code.
Bonne soirée
Ton fichier fonctionne parfaitement et correspond à mon attente.
Tu es performant dans ton domaine et altruiste. Bravo !!
Merci pour tout
Je regarde le transfert sur mon fichier de l'ensemble de ton code et te tiens au courant sur son fonctionnement. Effectivement j'ai eu quelques difficultés sur le code précédent copié avec un transfert des feuilles d'origine de ton fichier et j'avais un message d'erreur !?
J'aurai ensuite peut être besoin d'une petite évolution sur ce fichier (cumul de 2, voir 3 tableaux comme celui la sur un onglet récapitulatif) que je te soumettrai des que mon application sera opérationnelle avec cet excellent code.
Bonne soirée
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
14 mai 2013 à 12:57
14 mai 2013 à 12:57
Re,
Pas tout compris, tu veux coller le contenu de plusieurs feuilles sur la feuille EDIT5
c'est cela
Dans la mesure ou tu travaille sur le fichier, l'identification du fichier n'est pas nécessaire, tu cibles directement la plage. Les formule prennent le nom du fichier si tes cellule proviennent d'un fichier tiers
Pas tout compris, tu veux coller le contenu de plusieurs feuilles sur la feuille EDIT5
c'est cela
Dans la mesure ou tu travaille sur le fichier, l'identification du fichier n'est pas nécessaire, tu cibles directement la plage. Les formule prennent le nom du fichier si tes cellule proviennent d'un fichier tiers
http://cjoint.com/?CEqoVPDoRVb
Bonjour Mike,
Merci de ton aide par avance, il ne manque pas grand chose pour que le code fonctionne mais j'ai une anomalie dès que j'intègre un onglet avec une référence à cet onglet.
Cordialement
Bonjour Mike,
Merci de ton aide par avance, il ne manque pas grand chose pour que le code fonctionne mais j'ai une anomalie dès que j'intègre un onglet avec une référence à cet onglet.
Cordialement
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
16 mai 2013 à 15:38
16 mai 2013 à 15:38
Re,
l'erreur vient de cette ligne qui compte les lignes à copier, la fonction compte le cellule format texte, si colonne B feuille OGDAB les références sont au format numérique il conviendra de changer le CountIf en Count pour compter les valeurs numériques et en CountA pour compter les cellules non vide mais attention s'il y a des formules on revient à la case départ
Nbre_lig = WorksheetFunction.CountIf(Range(Range("B6"), Range("B" & Der_lig_B + 1)), ">""")
l'erreur vient de cette ligne qui compte les lignes à copier, la fonction compte le cellule format texte, si colonne B feuille OGDAB les références sont au format numérique il conviendra de changer le CountIf en Count pour compter les valeurs numériques et en CountA pour compter les cellules non vide mais attention s'il y a des formules on revient à la case départ
Nbre_lig = WorksheetFunction.CountIf(Range(Range("B6"), Range("B" & Der_lig_B + 1)), ">""")
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
16 mai 2013 à 21:14
16 mai 2013 à 21:14
Re,
La solution je te l'ai donnée, tout dépend du formatage de ta colonne B, ou c'est du texte ou c'est numérique avec ou sans formule
La solution je te l'ai donnée, tout dépend du formatage de ta colonne B, ou c'est du texte ou c'est numérique avec ou sans formule
Super, avec CountA cela fonctionne mais avec une particularité :
Si j'ai une seule ligne à copier, il me colle 2 fois la ligne a la suite et à partir de 2 lignes a copier c'est ok pas de doublon !
Peut-0n corriger cela sur la ligne unique ?
Si j'ai une seule ligne à copier, il me colle 2 fois la ligne a la suite et à partir de 2 lignes a copier c'est ok pas de doublon !
Peut-0n corriger cela sur la ligne unique ?
Mike-31
Messages postés
18313
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 avril 2024
5 073
16 mai 2013 à 21:53
16 mai 2013 à 21:53
Re,
Normal, il faut adapter le Count
a la fin de cette ligne supprime , ">"""
Nbre_lig = WorksheetFunction.CountIf(Range(Range("B6"), Range("B" & Der_lig_B + 1)) , ">""" ) ' compte ligne à copier
pour avoir cette ligne ou remplace la par celle ci
Nbre_lig = WorksheetFunction.CountA(Range(Range("B6"), Range("B" & Der_lig_B + 1))) ' compte ligne à copier
Normal, il faut adapter le Count
a la fin de cette ligne supprime , ">"""
Nbre_lig = WorksheetFunction.CountIf(Range(Range("B6"), Range("B" & Der_lig_B + 1)) , ">""" ) ' compte ligne à copier
pour avoir cette ligne ou remplace la par celle ci
Nbre_lig = WorksheetFunction.CountA(Range(Range("B6"), Range("B" & Der_lig_B + 1))) ' compte ligne à copier