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
....
Ligne24etail24
Ligne25: Recap
Ligne26etail1
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
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 ?
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 '