Inserer des données toutes les 25 Lignes

mawua

XLDnaute Occasionnel
Bonjour le forum et tout le monde sur le forum !

J'ai une macro (en feuil4) chargée de transferer des contenus de cellule vers une feuille (feuil5) du meme classeur.
La feuil5 est déja formatée donc je ne cherche pas à inserer une nouvelle ligne.
En fait Feuil5 est formatée avec des regroupement de ligne (plan)
Comme ceci:

Ligne1: Titre de colonne
Ligne2: Recap
Ligne3: Detail1
Ligne4: Detail2
....
Ligne24:Detail24
Ligne25: Recap
Ligne26:Detail1
Ligne27: Détail2
... et ainsi de suite.

Ce que j'aimerais c'est transférer les données vers la dernière ligne "Recap" vide, c'est à dire toute les 25 lignes à partir de la ligne 2.

Je ne sais pas s'il faut utiliser une boucle for ou un while ou un with.
Ce que je sais c'est que je ne peux pas selectionner toutes ces lignes "Récap" d'un seul coup car il y en a beaucoup trop.... (+ de 255). Le formatage en plan fait toute la feuil.

J'ai commencé avec un :
Ligne = .Range("A65536").End(xlUp).Row + 24
mais je me goure completement.
Un peu d'aide ???
Merci
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Inserer des données toutes les 25 Lignes

bonjour mawua

1) petit probleme
avec 1ere recap en 2 et 2eme en 25 le "pas" est de 23 et non 25

2) petite fonction pour avoir le numero de la 1ere ligne vide au pas de 23 dans la feuille 5

Code:
Function test()
For n = 2 To 65536 Step 23
If Sheets("Feuil5").Range("A" & n) = "" Then
test = n
Exit For
End If
Next n
End Function

si probleme ne pas hesiter à revenir
 

mawua

XLDnaute Occasionnel
Re : Inserer des données toutes les 25 Lignes

Bonjour PierreJean


Je vais utiliser la routine que tu me propose (et retourner en cours de maths, p'tain , la honte).
Ceci dit en utilisant une boucle for, je ne risque pas de remplir plus de une ligne ?
 

mawua

XLDnaute Occasionnel
Re : Inserer des données toutes les 25 Lignes

Bon je vais ranger mon cerveau et reflechir avant de parler.

J'ai inserer le test sur la premiere colonne que tu me proposais.
Ca marche parfaitement bien.
J'ai remplacé "test" par "Ligne" puisque c'est le nom de la variable que j'utilise pour cibler les cellules de destination.
Si vous utilisez cette solution,
pensez à declarer "Ligne" ainsi qu'a changer le numéro de colonne si besoin est:

Private Sub btnValider_Click()
Dim Ligne As Long 'déclaration de variable/remplace "test"
For n = 2 To 65536 Step 25
If Sheets("Feuil5").Range("B" & n) = "" Then 'changer la colonne ou s'effectue le test (si vous avez des titres de ligne par exemple)
Ligne = n
Exit For
End If
Next n
With ThisWorkbook.Sheets("Feuil5")
.Cells(Ligne, 2) = Sheets("page 1").Range("E19").Value '

End With

End Sub


Merci encore pour la dépanne PierreJean !
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Inserer des données toutes les 25 Lignes

explication complementaire:

la fonction est a integrer telle quelle dans un module

ensuite au cours d'une macro on remplace le numero de ligne par : test()

du style

range("A" & test())

si probleme ne pas hesiter à revenir
 

Membres actuellement en ligne

Statistiques des forums

Discussions
314 011
Messages
2 104 528
Membres
109 063
dernier inscrit
rahimmcsaw