Trouver ligne précise variant sur pls feuilles

Fermé
Prisme974 Messages postés 2 Date d'inscription mercredi 25 mai 2022 Statut Membre Dernière intervention 25 mai 2022 - 25 mai 2022 à 08:26
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 - 25 mai 2022 à 11:03
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 mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
25 mai 2022 à 10:08
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 mercredi 25 mai 2022 Statut Membre Dernière intervention 25 mai 2022
25 mai 2022 à 10:54
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 mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
Modifié le 25 mai 2022 à 10:58
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 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
25 mai 2022 à 11:03
Bonjour à tous les deux

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


Cdlmnt
0