Ajout d'un Nb de ligne variable...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CyberNeo99

XLDnaute Occasionnel
Bonjour à tous,

J’aimerais pouvoir créer un code qui ressemble à ceci de façon explicative car je ne sais comment l’écrire en VB car je ne programme pas en VB alors je fais appel à vous.

Je vais positionner la cellule à un certain endroit. Cette position peux varier selon le nombre de donner que j’ai dans un tableau, la position de départ est fixe alors je connais le numéro de la ligne disons 25. Si je fais

Nb_ligne_ajout = ActiveCell.Row – 25

où Nb_ligne_ajout est une variable j'imagine bien...

Nb_ligne_ajout est le nombre que je veux savoir pour les ajouter à un endroit.
Ensuite je vais aller à cet endroit, sur une autre feuille et sélectionner une ligne pour ensuite ajouter ce nombre de ligne que je viens de calculer.

Ce sera du genre

Nb_ligne_ajout = ActiveCell.Row – 25

Aller sur la feuille que je veux ajouter ces lignes.

Sélectionner une ligne précise.

Insérer le nombre de lignes, Nb_ligne_ajout

Pour ce faire il faut une boucle pour ajouter le Nb de ligne.

Ensuite je vais pouvoir aller sélectionner la plage dans la feuille où j’ai fais calculer le nombre de ligne à ajouter. Pour ensuite aller la copier en valeur dans la feuille où j’ai ajouter le nombre de lignes nécessaire.

Merci à l'avance

CyberNeo 😉
 
Dernière édition:
Re : Ajout d'un Nb de ligne variable...

Bonjour,

J'ai peut être quelque chose. J'aimerais savoir si cela est correct.

Voici le code que j'ai composé....

Sub Ajouter_lignes ()

Dim Nb_ligne_ajout As Integer
Dim i As Interger

Sheets("Feuille 1").Select

Cells.Find(What:="Coco_Chanel ", After:=ActiveCell, LookIn:= _xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

ActiveCell.Offset(-4, 0).Select

Nb_ligne_ajout = ActiveCell.Row – 25

Sheets("Feuille 2").Select

Rows("34:34").Select

i = 0

Do until i = Nb_ligne_ajout

ActiveCell.EntireRow.Insert

i = i + 1

Loop

End Sub


Ensuite il ne me suffit que d'aller sélectionner ma plage dans la feuille où je fais calculer le Nb de lignes et de copier en valeurs la plage de données dans la feuille où j'ai ajouté les lignes....

S'il y a des corrections à faire ne vous gêner pas.

Merci à l'avance

CyberNeo 😉
 
Dernière édition:
Re : Ajout d'un Nb de ligne variable...

Bonjour à tous,

J'ai conçus un exemple ce qui sera plus apprécier et plus aiser de trouver et comprendre ce que je veux.

Je veux copier la zone du milieu, la zone Doit contenir de la feuille 2 dans la zone correspondante dans la feuille 1. Puisque dans la feuille 2 le nombre de lignes est supérieur aux nombres de lignes de la même zone de la feuille 1, il faut lui faire calculer le nombres de lignes de données et ensuite le soustraire aux nombres de lignes qu'il y a dans la feuille 1 ce qui donnera le nombre de lignes à ajouter.

Il est fort possible qu'il y est une ou d'autres solution.

C'est pour une macro bien donc un code VBA.

Merci à l'avance pour votre aide si précieuse.

CyberNeo 😉
 

Pièces jointes

Re : Ajout d'un Nb de ligne variable...

Bonjour CyberNeo99 le forum
j'ai ouvert ton fichier, et pas compris ce que tu veux, puisque dedans, il n'y a aucune explications, du point de départ, et de ce que tu souhaites en final
alors je referme et je te souhaite un bon week-end
a+
papou 🙂
 
Dernière édition:
Re : Ajout d'un Nb de ligne variable...

Bonjour le fil 🙂,
Code:
Sub Test()
Dim NbreLigneDépart As Integer, NbreLigneArrivée As Integer, LigneDépart As Integer, LigneArrivée As Integer
Dim I As Integer
LigneDépart = Feuil2.Range("A:A").Find("Doit contenir / Must contain:").Row
LigneArrivée = Feuil1.Range("A:A").Find("Doit contenir / Must contain:").Row
NbreLigneDépart = Feuil2.Range("A:A").Find("Doit contenir / Must contain:").End(xlDown).Row _
    - Feuil2.Range("A:A").Find("Doit contenir / Must contain:").Row
NbreLigneArrivée = Feuil1.Range("A:A").Find("Doit contenir / Must contain:").End(xlDown).Row _
    - Feuil1.Range("A:A").Find("Doit contenir / Must contain:").Row
For I = 1 To NbreLigneDépart - NbreLigneArrivée
Feuil1.Rows(LigneArrivée + 3).Insert
Next I
Feuil2.Range("A" & LigneDépart & ":K" & LigneDépart + NbreLigneDépart - 1).Copy Feuil1.Range("A" & LigneArrivée)
End Sub
devrait te convenir.
Bon dimanche 😎
 
Re : Ajout d'un Nb de ligne variable...

Re 🙂,
Salut Papou. La solution de passer par la couleur est originale.
Par contre, pour info
Code:
Dim I, J As Integer
ne déclare que J en Integer, et pas I malheureusement.
Bon dimanche 😎
 
Re : Ajout d'un Nb de ligne variable...

Re 🙂,
Tu peux faire de l'économie avec les sigles
Code:
Dim MaString$
déclare MaString en String.
% pour Integer
! pour Single
& pour Long
@ pour Currency
# pour Double
Il y en a peut-être d'autre... J'ai pas trouvé la Date par exemple.
Bon dimanche 😎
 
Re : Ajout d'un Nb de ligne variable...

Bien le bonjour à Paritec et JNP,

Paritec ta solution est ingénieuse mais je vais prendre probablement celle de JNP car je peux avoir parfois beaucoup de lignes et en prenant compte d ela couleur j'ai peur qu'il saute du jaune au blanc et ensuite du jaune au blanc encore une fois et que cela en bout de ligne donne que la macro fonctionne mal. Je ne suis pas sûr mais je vais l'essayer pour voir car j'ai un Pb avec la macro de JNP vraiment mais vraiment bizarre.

J'applique sa macro dans mon fichier et il bloque à la première ligne soit la suivante

LigneDépart = Feuil2.Range("A:A").Find("Doit contenir / Must contain:").Row

Je ne sais pas pourquoi alors ce que j'ai fais est de copier le contenu des 2 pages dans un tout nouveau fichier vierge et d'appliquer la macro tel quel. Je n'ai fais aucune changement de donner et aucun changement dans la macro et deviner quoi dans le nouveau fichier qui est vierge avec les données copier/coller sans les formules et bien la macro fonctionne. J'ai même essayer en copiant les formules et la macro fonctionnait dans le nouveau fichier vierge. C'est vraiment bizarre pourtant c'est supposé être binaire....

Poser la questions à qqu qui s'y connait en informatique la question suivant.... Est-ce possible que quelque chose ne soit pas binaire en informatique ? Si Oui donner-moi un exemple Réponse Produit Microsoft ;o)))) ou alors il y a probablement quelque chose, une crotte que je dois trouver.

Si vous avez une idée pour m'éclairé, ce sera la bienvenue.

J'ai même défusionner des cellules dans la colonne A qui aurait pû être le Pb.

Merci encore

CyberNeo 😉
 
Re : Ajout d'un Nb de ligne variable...

Bonjour Cyberneo JNP
Bonjour Jean Noël,
pour Cybernéo.
Oui tu prend ce que tu veux, simplement si tu mets des exemples qui ne correspondent pas à la réalité, c'est toi que cela regardes.
Tu as demandé une action précise, JNP et Moi t'avons donné des réponses précises, si maintenant tu changes de problèmes il y a une solution, c'est sur, mais il faut mettre de l'ordre dans tes demandes, donc dans ta tête!!
Maintenant si tu appliques la macro de JNP sur un fichier différent de celui que tu as envoyé en modèle, cela ne marchera pas non plus !!!!!!!!!!!!!!!!!!!!
bonne journée
a+
Papou
 
Re : Ajout d'un Nb de ligne variable...

Re 🙂,
Tu parles de feuille vierge alors que ta demande était d'insérer dans de l'existant 😱...
Ma macro cherche dans la feuille de départ et dans la feuille d'arrivée "Doit contenir / Must contain:" pour définir l'emplacement de la copie et de sa destination, et se base sur le titre suivant pour décider si la place est suffisante. S'il n'y a pas "Doit contenir / Must contain:" ou si il n'y a pas de titre en dessous, la macro ne peux pas fonctionner 😛...
Ne pas oublier non plus de corriger les noms de feuilles (attention, les CodeName, ceux visibles dans VBA, et non pas les Name, ceux des onglets)
Bon courage 😎
 
Re : Ajout d'un Nb de ligne variable...

Bonjour à vous deux, Paritec et JNP,

En fait c'est exactement ce que je voulais. Je ne peux vous envoyez un fichier plus complet car trop volumineux. J'ai mis la partie que je voulais faire une action et ce que vous avez proposé va est génial. En fait, JNP, c'est dans mon fichier qu'il y a un Pb. J'applique ton code dans mon fichier et il bloque sur la 1ère ligne pas à cause de ton code car je copie l'intégralité des 2 feuilles où ton code s'applique dans un nouveau classeur vierge sans changer aucune données et je copie ton code pour en faire une macro et dans le nouveau classeur ton code fonctionne à merveille alors que dans mon fichier ça ne fonctionne pas. Je n'ai aucune idée pourquoi, c'est illogique complètement illogique. je ne modifie aucunes données et ton code est intégrale avec les nom de feuille et tout. Il y a quelque chose, un code ou quelque chose dont j'ignore la source qui blocage sur ton code, ce n'est pas ton code qui est en cause.

Je vais contourner le Pb en créant 2 nouvelles feuilles et en travaillant ton code sur ces 2 nouvelles feuilles et ensuite je vais transférer le résultat une fois macro termienr dans la feuille respective. C'est la façon que j'ai pour contourner ce Pb.

Je ne peux vous envoyer un fichier plus complet car trop volumineux comme j'ai dis et même si je vous envoie les feuilles plus complète je sais que ton code fonctionne car j'ai essayé les différente possibilité pour ainsi trouvé la source, plutôt en éliminant des possibilités et j'en ai conclue que ce n'est pas ton code la source du Pb.

Merci encore à vous 2.

CyberNeo 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
220
Réponses
18
Affichages
603
Réponses
34
Affichages
853
Réponses
5
Affichages
169
Réponses
10
Affichages
511
D
  • Question Question
Réponses
5
Affichages
248
Didierpasdoué
D
Réponses
19
Affichages
757
Réponses
23
Affichages
665
Retour