Copier coller en recherchant une ligne specifique

Je vais garder le fichier d’origine avec tout les onglets , je masquerai le maximum sauf FICHE DE NC , afin que la macro SAISIE NCF fonctionne , ça me limitera déjà pas mal les onglets , c’est suffisant et c’est beaucoup plus simple

Qu’en penses tu ?

Je viens de te faire une proposition concernant la procédure et l’onglet qui pose pb :

Pour ton export qui pause pb on peut inclure dans la procédure « SAISIE NCF » le demasquage de l’onglet « FICHE DE NC » le temps de l’exécution de son export avec en suivant son remasquage
A toi de me dire

Ha excuse moi , je n’avais pas fait attention :sweat_smile:
Oui ce serait top alors , si tu peux me mettre " 'l annotation " des lignes de codes que tu as rajouté que je vois où et comment tu as fait ?

Tu peux tout à fais le réaliser toi même
En faisant un enregistrement de macro tu masques l’onglet concerné puis tu le démasques
Ainsi tu obtiens dans la macro créée les lignes d’instruction qui doivent se mettre pour la deuxième avant celle de la génération du fichier pdf pour la première après elle
Tu peux aussi en tout début de la macro mettre la deuxième et en toute fin la première

D’une manière générale toute procédure qui ne digère pas un état de la sorte doit être enrichie d’instruction qui le rend compatible en préambule de celle-ci et d’instruction qui le remette en place à cet état initial

Essaies et dis moi

C’est exactement ce que j’ai fait avant de voir ta réponse et ça marche Nickel !!

Encore merci FFO
Moi je suis du genre " pourquoi faire simple quand on peux faire compliqué :sweat_smile: "

Heureusement que tu est là , la solution était toute simple , j’aurai pû la trouver sans t’embêter

Tu ne m’as pas du tout embêté
T’accompagner dans ton évolution fichier et connaissance VBA est un plaisir pour moi surtout qu’il ne faut pas grand chose pour obtenir de reel progrès les concernant
Au plaisir de doubler la mise

Avec plaisir FFO , je reviendrai vers toi plus tard concernant certaines parties de code que je n’ai pas tout à fait comprises avec les boucles …
Merci de toujours répondre présent quand on a besoin de toi

Bonne fin de journée FFO

Re bonjour FFO,
Comme promis me revoilà pour avoir une petite explication , j’ai compris le principe de la boucle et je l’ai réutilisée dans une autre macro pour un autre projet.

Mais juste avant la boucle tu m’avais mis 3 lignes de codes que j’ai du mal à comprendre

J’ai du mal à comprendre à partir de " Do While … "
Pourrait tu me les décrire avec des phrases s’il te plait ?

image

Merci par avance

Bonjour

Par ces quelques lignes de code on détermine la première ligne disponible pour intégrer les données
La première determine celle-ci à partir de la dernière ligne de la feuille colonne « E » qui est sans donnée en remontant dans cette colonne et de cibler la ligne de la première cellule pleine auquel on rajoute un +1
Cela fonctionne parfaitement sauf dans le cadre d’un tableau intégré car ce n’est plus la ligne de la première cellule pleine qui fait office de référence mais celle de la dernière du tableau avec cette instruction utilisée
Et de risquer d’utiliser la première ligne après celles d’un tableau et non la première libre
D’où la boucle qui suit pour contourner cette difficulté
Qui tant que la cellule de la colonne « E » est vide d’ecrementer la variable derligne qui porte ce numéro de -1 jusqu’à la première cellule avec une donnée ou la valeur de cette variable ayant obtenu celle de la première ligne de la feuille soit 1
derligne prendra ainsi le numéro colonne « E » de la ligne de la première cellule non vide auquelle on ajoutera +1 pour avoir celle de la première cellule vide
qui sera celle à utiliser
J’espère avoir été claire sur l’objet de ces lignes
Dis moi

@FF0, il faut y ajouter qu’avec ce formule on voit la dernière ligne visible, donc si vous appliquez un filtre, cela n’est pas nécessairement la dernière ligne effective, donc dangeureux dans le cas d’un filtre actif !!!
Dans le cas d’un tableau structuré, on n’a pas ce problème avec ce filtre, mais le but d’un tableau structuré, c’est qu’on n’a pas de lignes vides et donc on n’a qu’à ajouter aveuglément une nouvelle ligne en dessous le tableau ou autre chose. C’est vraiment intéressant de traiter un tableau comme tableau Il faut s’imaginer que ce tableau est une sorte de feuille dans votre feuille. une plage qui est facilement à accèder et à traiter séparé du reste de la feuille

1 « J'aime »

Salut FFO, merci pour ta réponse ( que j’ai relu une bonne dizaine de fois :sweat_smile: ), ce n’est pas hyper limpide et intuitif pou moi
ce que je comprends c’est que la 1ère ligne de code( avec row +1) fonctionne dans le tableau intégré tant que le tableau a déjà au moins une première ligne de renseignée
Mais si la 1ère Ligne du Tableau est vide ( ligne 2 ) , il va écrire sur la ligne suivante ( ligne 3 ) et laisser la 1ère ligne ( ligne 2 ) du tableau vide , d’où la 2ème Ligne de code

Est ce bien ça ?

La ligne de code :

derligne = Sheets("BASE NC").Range("A" & Rows.Count).End(xlUp).Row + 1

donne sans présence d’un tableau intégré sur cette exemple la ligne 11 :

avec un tableau intégré sur fond jaune dans cet exemple (tableau créé de la ligne 1 à 15) la ligne 16 :

Si on laisse en l’état les données ingrées le seront en ligne 16 au lieu de la ligne 11 première disponible et ce à cause de la présence du tableau

pour contourner la difficulté ces lignes de codes qui suivent et qui analysent par une boucle les cellules vides en colonne « A » à partir de la numéro 16 jusqu’à la première non vide :

Do While Sheets("BASE NC").Range("A" & derligne) = "" And derligne > 1
    derligne = derligne - 1
    Loop

derligne en fin de boucle prends la valeur 10

après la boucle la ligne de code qui suit rajoute à la variable derligne un +1 pour déterminer la ligne à utiliser pour l’intégration des données :

derligne = derligne + 1

soit la ligne 11

J’espère que c’est plus claire pour toi

Dis moi

Salut FFO , Oui, j ai compris !!:slightly_smiling_face:

C est tres clair avec les exemples , merci pour tes explications FFO

Au plaisir de t’aider à nouveau

Vraiment merci , je suis content lorsque je comprends ce que j utilise , c est beaucoup plus intéressant