Recherche de données marco

Résolu
Rachel -  
 Rachel -
Bonjour,

Dans une feuille excel, je souhaite sélectionner des données qui sont composées toujours du même nombre de ligne (9) mais pas située toujours au même endroit (début des données = ligne variable)

Dans l'exemple du fichier en lien, il s'agit des lignes 502 à 510 et le repère est la ligne qui contient la cellule nommée "Avg Result" => https://mon-partage.fr/f/iz3ZSnef/

Voici ce que j'avais imaginé mais qui ne fonctionne pas :
Dim LigneD As Long, ligneF As Long
LigneD = ActiveSheet.Columns(2).Find("Avg Result", , , , xlByColumns, xlNext).Row
Range("A" & LigneD & ":AA" & LigneD).Select
ligneF = selection.Offset(8, 0).Select
Range("A" & LigneD & ":AA" & ligneF).Select
selection.Copy

Merci d'avance pour votre aide.

Rachel

1 réponse

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Simplement :
    Sub test()
    Dim src As Range  'source
    Dim dst As Range  'destination
      Set dst = ActiveSheet.Range("A6000") ' à adapter
      Set src = ActiveSheet.Columns(2).Find("Avg Result", , xlFormulas, xlWhole)
      If Not scr Is Nothing Then
        Set src = src.EntireRow.Resize(8)
        src.Copy dst
      End If
    End Sub


    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      PS :
      « Dans une feuille excel, je souhaite sélectionner des données... »
      Sélectionner n'est pas une finalité, en général on souhaite faire quelque chose après : avec VBA il faut impérativement éviter de sélectionner si ce n'est pas la finalité !!!
      0
    2. Rachel
       
      Bonjour Patrice,

      Merci pour cette réponse.
      Effectivement, mon libellé n'est pas complet, c'était par soucis de clarté qui n'a apparemment pas eu l'effet escompté, désolée. Inutile de préciser que mes connaissances en VBA sont limitées.

      Je souhaite donc copier ces données pour les coller dans une autre feuille du même fichier nommée "Validation de données", 2 lignes en dessous d'une cellule contenant le texte "Standard : Delta calculé-attendu (Avg Result)", cellule qui n'est pas toujours à la même ligne mais toujours dans la colonne A. Voilà pour l'expression complète de mon besoin. Voici le fichir mis à jour dans ce sens : https://mon-partage.fr/f/ZYX2VsUU/.

      Je ne parviens pas à faire fonctionner la solution proposée car j'ai l'erreur "Erreur d'exécution "424" : Objet requis" sur la ligne "If Not scr Is Nothing Then". Une idée de ce qui bloque?

      Merci d'avance, Rachel
      0
    3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      c'est pas scr mais src
      0
    4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Code à mettre dans un module standard (pas dans le module de feuille) :
      Option Explicit
      Sub test()
      Const s$ = "Avg Result"
      Const d$ = "Standard : Delta calculé-attendu (Avg Result)"
      Dim src As Range  'source
      Dim dst As Range  'destination
        Set dst = Worksheets("Validation série").Columns(1).Find(d, , xlFormulas, xlWhole)
        Set src = Worksheets("Importation").Columns(2).Find(s, , xlFormulas, xlWhole)
        If Not src Is Nothing And Not dst Is Nothing Then
          Set src = src.EntireRow.Resize(8)
          src.Copy dst.Offset(1)
        End If
      End Sub
      
      0
    5. Rachel > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci :-)
      0