Copier tableau taille variable dans autre feuille
Bonjour à tous!
Désolée de vous déranger mais je suis une pure néophyte en ce qui concerne VBA et j'ai vraiment du mal à aboutir à quelquechose.
Donc ce que je veux faire:
J'ai un fichier excel comprenant différentes data. Je veux qu'à chaque fois qu'une cellule dans la colonne A contient "Sample Name", une sélection soit faites en partant de cette même cellule. La sélection doit couvrir 8 colonne et descendre d'un nombre de ligne variable et s'arrêter en rencontrant une ligne vide.
Cette sélection doit ensuite être copiée dans une autre feuille.
Ces deux actions doivent subir un loop afin d'extraire tous les tableaux de ce genre contenus dans la première feuille et les copier dans la deuxième.
En glanant des info sur le net, j'ai aboutit à ça:
Sub Macro1()
'
' Macro1 Macro
'
'
Dim s_source As Sheets
Dim s_target As Sheets
Dim cell_source_1er As Range
Dim cell_source_der As Range
Dim cell_target As Range
Set s_source = Sheets("A")
Set s_target = Sheets("B")
Set cell_source_1er = s_source(Range("A").Find(what:="Name Sample"))
If Not cell_source_1er Is Nothing Then
first = cell_source_1er.Address
Do
Set cell_source_der = cell_source_1er.End(xlDown).Offset(0, 8 )
Set cell_target = s_target.Range("N2")
s_source(Range(cell_prems, cell_source_der)).Copy cell_target
Set cell_source_1er = Sheets("A").Range("A").FindNext(cell_source_1er)
Loop While Not cell_source_1er Is Nothing And cell_source_1er.Address <> firstAddress
End If
End Sub
Et ça ne marche pas du tout. J'obtient l'erreur "Membre de méthode ou de données introuvable". Je ne sais pas ce qui cloche et n'arrive pas à trouver la solution en ligne.
Merci encore pour votre aide.
Bonjour,
Je pense que la meilleure façon d'obtenir une réponse fiable, c'est encore de joindre un fichier exemple, exempt de toutes données confidentielles, et possédant la même structure que ton fichier original.
Avec ce que tu as, et ce que tu voudrais obtenir.
@ te relire
Bonjour,
Ce serait mieux d'avoir un fichier modèle ...
Sinon à tester :
Sub Macro1()
Dim s_source As Worksheet
Dim s_target As Worksheet
Dim cell_source_1er As Range
Dim cell_source_der As Range
Dim cell_target As Range
Dim first As String
Set s_source = Sheets("A")
Set s_target = Sheets("B")
Set cell_source_1er = s_source.Range("A:A").Find(what:="Name Sample")
If Not cell_source_1er Is Nothing Then
first = cell_source_1er.Address
Do
Set cell_source_der = cell_source_1er.End(xlDown).Offset(0, 8)
s_source(Range(cell_prems, cell_source_der)).Copy s_target.Range("N2")
Set cell_source_1er = s_source.Range("A").FindNext(cell_source_1er)
Loop While Not cell_source_1er Is Nothing And cell_source_1er.Address <> firstAddress
End If
End SubAttention que cell_prems ne correspond à rien dans ce code. Je suppose qu'il s'agit d'une donnée enregistrée comme Nom dans le fichier.
Crdlt