Copier ligne par ligne sur autre feuille

Bonjour à tous,

Pouvez vous me dire quel est le code sous vba pour copier ligne par ligne vers une autre onglet si ligne non vide ?

Merci d'avance

Bonjour Ikhaoula,

tu devrais joindre ton fichier Excel.

dhany

Bonjour et bienvenue sur le forum

Rows("1:1").Copy Sheets("Feuil2").Range("A1")

Bye !

coucou gmb, j'crois qu't'as oublié une p'tite partie d'l'énoncé ! Ikhaoula a écrit : « ... vers un autre onglet si ligne non vide » ; et j'pense qu'en fait ça sera non pas si une ligne entière est vide, mais si la cellule d'une colonne donnée sur la ligne est vide (voir futur fichier).

dhany

Bonjour à tous

Bonjour dhany

(...voir futur fichier)

.Tu as raison : attendons ce nouveau fichier !

Bye !

Bonjour à tous,

Pouvez vous me dire quel est le code sous vba pour copier ligne par ligne vers une autre onglet si ligne non vide ?

Merci d'avance

Le but c'est De copier les lignes depuis onglet suivi_ind_cd vers onglet synthese global sauf colonne F; mERCIII

2suivi.xlsm (64.14 Ko)

copie de données de l'onglet "Suivi_ind_CD" à l'onglet "Synthese_Global", cela ligne par ligne : ok, ça c'est très clair !

« si ligne non vide » : aïe, ça c'est pas clair ! en colonne F, des lignes 8 à 67, y'a aucune ligne vide ! donc en quelle colonne faut-il vérifier si la donnée est vide ? toutes les colonnes autres que la colonne F ? quelques unes d'entre elles ? (et si oui, lesquelles ?) une seule colonne ? (si oui, laquelle ?) ; réponds à ces questions quand ton tableau est normalement assez rempli, car là, il est quasiment entièrement vide ! comme on n'a pas de temps à perdre à inventer les données qui doivent être copiées, merci de retourner un autre fichier comportant des exemples significatifs de données qui permettront de vérifier que la macro à réaliser fera bien son travail : copier les bonnes lignes et pas les autres.

mets environ une vingtaine de lignes de données, et pas toutes les mêmes pour qu'on puisse facilement les différencier.

dhany

Bonjour à tous ,désolé je suis un peu novice dans vba .Voilà comme demandé le fichier rempli avec le résultat que je voudrais voir dans synthèse_global .J'éspère que ca va être un peu plus clair de l'attendu .

3suivi.xlsm (65.10 Ko)

Bonjour Ikhaoula,

Je te retourne ton fichier modifié :

12suivi.xlsm (69.16 Ko)

À l'ouverture du fichier, tu es sur la 2ème feuille "Synthese_Global"

Ctrl e ➯ travail effectué (idem depuis n'importe quelle feuille)

Alt F11 pour voir le code VBA, puis revenir sur Excel

Si besoin, tu peux demander une adaptation.

Merci de me dire si ça te convient.

dhany

@Ikhaoula : j'ai corrigé un petit bug dans mon fichier précédent ; si tu l'avais déjà téléchargé lors de ta dernière visite de 16:58, tu dois le recharger à nouveau (au même endroit, donc à partir de mon message de 16:56) ; vérifie bien soigneusement tous les résultats.

waw super ça marche comme sur des roulettes .merci bcq

merci pour ton retour ! tu peux donc passer le sujet en résolu : tu dois cliquer sur le bouton qui est près du bouton (dans le coin haut droit du message qui a résolu ton exo) ; ça permet aussi de clôturer le fil de la discussion ; tu sauras que tu as réussi quand tu verras un petit rond vert avec une coche, comme ceci :

sujet

tu peux aussi regarder le coin bas droit du même message bonne continuation !

dhany

merci pour avoir passé le sujet en résolu, et aussi pour le !

dhany

Salut ,

Peux tu stp mexpliquer le code car jai rajouté une colonne du coup jai fait la modif du code (celluleA3 jusqua Gw) mais jai remarque un decalage lors de la copie

nouvelle version du fichier (dont structure modifiée) :

8suivi.xlsm (74.91 Ko)

Ctrl e ➯ travail effectué (idem depuis n'importe quelle feuille)

Alt F11 pour voir le nouveau code VBA

dhany

Top merciii

de rien, c'était avec plaisir !

dhany

Bonsoir ,

C'est encore moi si tu peux m'aider cette fois car je bloque ,en fait j'ai rajouté une ligne (rajout sujet) dans l'onglet suivi ind et rajouté ainsi les colonnes correspondant dans l'autre onglet synthèse global .j'ai modifié la boucle for i de 0 à 20 au lieu de 19 et lg1=lg1+21 mais ca pas marché peux tu m'aider please ?

Bonjour Ikhaoula,

c'est très bien : t'as fait les modifs qu'il fallait ! tu as juste oublié 2 petites choses concernant l'effacement préalable :

1) au niveau du VBA :

If lg1 > 2 Then wd.Range("A3:GW" & lg1).ClearContents : tu as laissé GW alors que maint'nant c'est HG !

If lg1 > 2 Then wd.Range("A3:HG" & lg1).ClearContents


2) au niveau d'Excel : regarde cette copie d'écran :

screen

toute ligne utilisée est censée avoir un N° Semaine, n'est-ce pas ? c'est pourquoi la détection de la dernière ligne est selon la colonne A ; or en ligne 4 : tu as des données en colonnes F, G, O par exemple, et A4 est vide : pas de N° Semaine ! donc la dernière ligne détectée est la n° 3 et pas la 4 (ce qui est normal) ➯ ça efface des lignes 3 à 3 et pas 3 à 4 ! solution toute simple : saisis en A4 par exemple 5 et relance la macro ; dernière ligne détectée : 4 ➯ effacement préalable des lignes 3 à 4 ➯ y'a pas d'mélange entre les anciens résultats et les nouveaux.


4suivi-v2.xlsm (73.06 Ko)

à te lire pour avoir ton avis.

dhany

Oui je suis d'accord mais pour la 2ième chose quel paramètre je dois modifier dans le code du coup pour ne pas avoir ce décalage ?

Rechercher des sujets similaires à "copier ligne feuille"