Trouver ligne précise variant sur pls feuilles

Prisme974 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,


Je souhaiterais copier un ensemble de cellules de plusieurs feuilles (H1, H2, ...) sur une feuille Feuil1.
Le problème est que la 1ère ligne que je dois copier ainsi que la dernière ligne ne sont pas les mêmes sur chaque feuille. (exemple sur H1 on va copier de A36 à B40, sur H2 de A20 à B30, ...
Le nombre de feuilles H n'est pas fixe, on peut en ajouter tant qu'on veut.
Les feuilles se présentent selon ce modèle :

A B
1
2
...
8
9 Fournitures :
10 40 plants en godets
11 18 gaines agroforestières
...
20 19 tuteurs bambou


J'essaie de sélectionner les cellules entre la ligne située en-dessous de la cellule "Fournitures :" jusqu'à la fin du tableau (il n'y a rien en dessous).
J'ai donc opté pour une boucle :


Dim dlgR As Integer, dlgi As Integer
Dim i As Byte

'pour chaque feuille dans ce classeur si la feuille est différente de "page"...
For Each F In ThisWorkbook.Sheets
If F.Name <> "page" Then
'déterminer 1ère ligne
'retrouver la cellule contenant "Fournitures :"
Cells.Find("Fournitures :", , xlValues, xlWhole).Select
'Descendre d'1 cellule vers le bas
premiere_ligne = ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select

'on souhaite coller les données de chaque feuille sur la "Feuil1", à partir de la colonne A :
dlgR2 = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row

dlgi2 = F.Range("B" & Rows.Count).End(xlUp).Row
'F.Range("A" & premiere_ligne & ":B" & dlgi2).Copy Sheets("Feuil1").Range("A" & dlgR2 + 1)
End If
Next



Mais la ligne "Cells.Find("Fournitures :", , xlValues, xlWhole).Select" ne semble pas fonctionner. Y a t'il une erreur de syntaxe ?

Merci par avance de votre aide et bonne journée !

Configuration: Windows / Chrome 101.0.4951.67
A voir également:

3 réponses

fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59
 
Bonjour
une piste :
Dim dlgR As Integer, dlgi As Integer
    Dim i As Byte, F As Worksheet, premiere_ligne As String
    
    'pour chaque feuille dans ce classeur si la feuille est différente de "page"...
        For Each F In Worksheets
            If F.Name <> "page" Then
                'déterminer 1ère ligne
                'retrouver la cellule contenant "Fournitures :"
                premiere_ligne = Cells.Find("Fournitures :", , xlValues, xlWhole).Row + 1
            End If
        Next F


0
Prisme974 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Le code ne fonctionne toujours pas... J'ai l'impression qu'il ne trouve pas le "Fournitures :" car il le cherche dans la "Feuil1" et non dans les feuilles H1, H2, ...
0
fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59
 
chez moi ça fonctionne.. je ne connais pas la structure de ton classeur mais essaye avec
If F.Name Like "H*" Then  

sinon partage un fichier exemple avec les même caractéristiques que ton classeur sur cjoint
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour à tous les deux

Peut être
 premiere_ligne = F.Cells.Find("Fournitures :", , xlValues, xlWhole).Row + 1


Cdlmnt
0