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...

Re 🙂,
As-tu bien tenu compte de
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 😎
car ton fichier avait peut-être plusieurs feuilles, et tu auras beau changer les noms des onglets, ça ne fonctionnera pas.

attachment.php


Le CodeName est en jaune.
Bonne soirée 😎
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    46.5 KB · Affichages: 69
  • Capture.JPG
    Capture.JPG
    46.5 KB · Affichages: 72
  • Capture.JPG
    Capture.JPG
    46.5 KB · Affichages: 75
Re : Ajout d'un Nb de ligne variable...

Bonsoir JNP CyberNeo99,
je ne sais pas à coté de quoi tu passes mais franchement là ta manipulation de faire des feuilles en plus, recopier après et pourquoi pas faire des photocopie de l'écran!!!
Quand à ton fichier trop lourd !!!!!!
non c'est pas vrai mais il faut faire l'effort de le faire maigrir un peu enfin ce que j'en dit !!
Tu vois que le problème de couleur n'en est pas un puisque même sans couleur tu n'y arrives pas, mais tu as une version anglaise peut-être ?
si tu as des sheet1 c'est pas des feuil1 !!!!! même si c'est pareil
a+
papou 🙂
 
Re : Ajout d'un Nb de ligne variable...

Salut Paritec,

Effectivement j'ai fais attention pour les noms de feuille car c'est l'erreur possible qui est disons simpliste. J'ai changer les noms de mes feuilles pour que ce soient Feuil1 et Feuil2 comme dans son code et rien à faire toujours la même erreur. J'ai une version française de Excel ce qui aurait pû être aussi une source d'erreur bien pensé.

Je vais regarder ça la semaine prochaine car je dois me pencher sur autre chose pour aujourd'hui. Pour ce qui est d'alléger mon fichier aucune possibilité car c'est un formulaire où des données sont recueillis et je dois prendre une ancienne version par exemple la version et prendre les données de cette version et les transférer dans la nouvelle version.

Je vais sûrement y arriver. En créant de nouvelles feuilles et en tranférant les données seulement, l'autre Pb que je craint est lorsque je vais vouloir tranférer les données une fois les manipulations fait dans les nouvelles feuilles je risque probablement de perdre mes références s'il y a des formules je vais devoir regarder ça...

Si j'ai d'autres questions ou pour tout autres choses je vais revenir sur le forum car il y a vraiment des gens sympa pour aider les autres et j'apprécie énormément.

Merci encore, un Gros Merci

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

Re 🙂,
J'ai l'impression de parler chinois 😕...
Dans mon code, j'utilise les CodeName des feuilles (leurs noms objet, comme montré dans ma copie d'écran, indépendant des onglets que les gens changent facilement... et de plus, plus rapide à la saisie
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 = [COLOR=red]Feuil2[/COLOR].Range("A:A").Find("Doit contenir / Must contain:").Row
LigneArrivée = [COLOR=red]Feuil1[/COLOR].Range("A:A").Find("Doit contenir / Must contain:").Row
NbreLigneDépart = [COLOR=red]Feuil2[/COLOR].Range("A:A").Find("Doit contenir / Must contain:").End(xlDown).Row _
    - [COLOR=red]Feuil2[/COLOR].Range("A:A").Find("Doit contenir / Must contain:").Row
NbreLigneArrivée = [COLOR=red]Feuil1[/COLOR].Range("A:A").Find("Doit contenir / Must contain:").End(xlDown).Row _
    - [COLOR=red]Feuil1[/COLOR].Range("A:A").Find("Doit contenir / Must contain:").Row
For I = 1 To NbreLigneDépart - NbreLigneArrivée
[COLOR=red]Feuil1[/COLOR].Rows(LigneArrivée + 3).Insert
Next I
[COLOR=red]Feuil2[/COLOR].Range("A" & LigneDépart & ":K" & LigneDépart + NbreLigneDépart - 1).Copy [COLOR=red]Feuil1[/COLOR].Range("A" & LigneArrivée)
End Sub
Ce CodeName se modifie au niveau des propriétés des objets dans l'éditeur VBA.
Si vous utilisez les onglets, c'est le Name qu'il faut utiliser, avec Sheets("Feuil1"), soit en corrigeant mon code
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 = [COLOR=red]Sheets("Feuil2").[/COLOR]Range("A:A").Find("Doit contenir / Must contain:").Row
LigneArrivée = [COLOR=red]Sheets("Feuil1").[/COLOR]Range("A:A").Find("Doit contenir / Must contain:").Row
NbreLigneDépart = [COLOR=red]Sheets("Feuil2").[/COLOR]Range("A:A").Find("Doit contenir / Must contain:").End(xlDown).Row _
    - [COLOR=red]Sheets("Feuil2").[/COLOR]Range("A:A").Find("Doit contenir / Must contain:").Row
NbreLigneArrivée = [COLOR=red]Sheets("Feuil1").[/COLOR]Range("A:A").Find("Doit contenir / Must contain:").End(xlDown).Row _
    - [COLOR=red]Sheets("Feuil1").[/COLOR]Range("A:A").Find("Doit contenir / Must contain:").Row
For I = 1 To NbreLigneDépart - NbreLigneArrivée
[COLOR=red]Sheets("Feuil1").[/COLOR]Rows(LigneArrivée + 3).Insert
Next I
[COLOR=red]Sheets("Feuil2").[/COLOR]Range("A" & LigneDépart & ":K" & LigneDépart + NbreLigneDépart - 1).Copy [COLOR=red]Sheets("Feuil1").[/COLOR]Range("A" & LigneArrivée)
End Sub
Est-ce enfin plus clair 😱?
Bonne soirée 😎
 
Re : Ajout d'un Nb de ligne variable...

Bonsoir Cybernéo,Jean Noël,
bah non Jean Noël, tu parles bien le français, mais je pense que Cybernéo est un peu perdu, mais je ne vois pas en quoi le fait de faire ses copier coller vont pouvoir arranger son fichier.
Il passe a coté de je ne sais quoi? Il mélange les name et les codenames je pense ou alors il a des feuilles vérouillées aussi !!!!
bonne soirée
a+
Papou 🙂
 
Re : Ajout d'un Nb de ligne variable...

Salut à vous 2,

Et bien en fait il parles français assurément mais pour moi c'est un peu chinois dans le sens, comme j'avais mentionné au tout début je ne programme pas en VB et même je ne programme pas. je suis capable de lire et comprendre un peu la logique car j'ai déjà programmé à l'époque lorsque j'étais étudiant il y a bien longtemps j'ai appris Pascal 5, Fortan, et j'ai déjà joué avec VB il y a bien longtemps comme vous pouvez le constatez avec le type de language de programmation que j'ai appris. 😛

Pour ce qui est d ela feuille verrouiller effectivement elle était vérouiller au départ mais je l'ai déverrouiller avant de concevoir la macro car effectivement c'est sûr que cela n'aurais pas fonctionner.

Devivez quoi avec le nouveau code de JNP il fait la macro jusqu'au moment de copier le contenue je n'y comprend rien du tout. Elle fonctionne pour le reste mais pas pour l'étape du copiage des données. J'en perds mon latin même si je ne l'ai pas appris. 😱

Merci encore pour votre aide

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

Re Cybernéo JNP
oui mais maintenant sans ton fichier on ne peut plus rien pour toi!!
que veux tu que l'on te dise? une macro qui marche a 50% !!!! ????
au moment de copier les données ???? est-ce que sa base de recherche.find est toujours présente Must je ne sais plus quoi ? et les colonnes c'est toujours bien dans la colonne A qu'il faut chercher
?????????????????????,, la ligne ci-dessous? et écrit de la même manière ? avec les points accents etc ?? bref regardes et tu vas trouver
a+
Papou 🙂
Code:
.Find("Doit contenir / Must contain:")
 
Re : Ajout d'un Nb de ligne variable...

Salut Paritec,

Oui il doit rechercher le (Doit contenir / Must contain🙂. Je ne suis pas un expert du code VB mais s'il y ades choses que je connais de base c'est bien ça. Je serais franchement un idiot de ne pas avoir tenu compte de ça le mot est différent, le nom de la feuille,... ce sont des choses de base et si j'avais bloqué à ce niveau autant ne pas toucher au macro et au code VB.

Comme j'ai dis je copie le contenu intégral des feuilles dans 2 autres feuilles et la macro fonctionne je ne comprend pas pourquoi mais bon il en est ainsi. Je vais sûrement trouvé quelque chose. Et là elle fonctionne jusqu'au moment de copier les données c'est à ne rien n'y comprendre.

J'ai pensé à quelque chose aussi si la plage des données est vide il ne faut qu'il puisse calculé sinon il y a aura un Nb négatif et ainsi il réduira le Nb de lignes d'arrivée. Il me faut faire un Test ce qui n'est pas compliqué.

Merc encore pour ton aide

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

Re 🙂,
J'ai pensé à quelque chose aussi si la plage des données est vide il ne faut qu'il puisse calculé sinon il y a aura un Nb négatif et ainsi il réduira le Nb de lignes d'arrivée. Il me faut faire un Test ce qui n'est pas compliqué.
Négatif, mon code ajoute des lignes mais n'en supprime pas (à l'inverse de Sark... 😛).
J'ai du mal à comprendre le "elle fonctionne jusqu'à la copie". Tu l'as exécuté avec F8 ?
Toutes les variables étaient bonne mais seule la copie ne se fait pas ?
Ou tu as un bug qui surligne la copie ?
As-tu un dépassement de capacité (les Integer sont limités à 32 767, si tu as plus de ligne, ça plante...)
Difficile de t'aider dans le manque d'explications 😕...
@ + 😎
 
- 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
604
Réponses
34
Affichages
854
Réponses
5
Affichages
170
Réponses
10
Affichages
511
D
  • Question Question
Réponses
5
Affichages
248
Didierpasdoué
D
Réponses
19
Affichages
757
Réponses
23
Affichages
666
Retour