Macro selection ensemble de lignes entre 2 critères sur même colonne

  • Initiateur de la discussion Initiateur de la discussion ginius
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ginius

XLDnaute Nouveau
Bonjour tous le monde!

Après une longue recherche sans réussite, je me permet de vous poster ma requête.

Je recherche à créer une macro me permettant de sélectionner plusieurs lignes selon 2 critères.

Premier critère:
La première ligne à sélectionner commence par le nom "A1" sur la colonne A

Deuxième critère:
La dernière ligne à sélectionner de cet ensemble de ligne fini par le nom "Total" sur la colonne A

Ce qu'il faut savoir c'est qu'il y a qu'un seul nom "A1" sur la colonne A mais plusieurs nom "Total" sur cette même colonne et qu'il me faut sélectionner la ligne du premier "Total" apparaissant après le nom "A1".
J’espère que vous me comprenez lol

Je vous envois en lien le document excel vous montrant un peux a quoi ressemble la colonne en question.

En espérant que vous pourrez m'aider!

Merci d'avance

vincent
 

Pièces jointes

Re : Macro selection ensemble de lignes entre 2 critères sur même colonne

Bonjour à toutes et à tous,

Bienvenue sur XLD, ginius !

Peut-être ainsi :

Code:
Option Explicit
Sub D_ici_à_là_sélectionner()
Cells.Find(What:="A1").Name = "ici"
Cells.Find(What:="Total").Name = "là"
Range("ici:là").EntireRow.Select
ActiveWorkbook.Names("ici").Delete
ActiveWorkbook.Names("là").Delete
End Sub

A bientôt 🙂

P. S. : grand bonjour, mapomme 😀
 
Dernière édition:
Re : Macro selection ensemble de lignes entre 2 critères sur même colonne

Bonjour ginius,

Un essai dont le code est dans Module1:
VB:
Sub entre2()
Dim deb As Range, fin As Range

  Sheets("ALL_Agent_Source").Activate
  Set deb = Range("a:a").Find(what:="A1", LookIn:=xlValues, lookat:=xlWhole, _
    SearchDirection:=xlNext, after:=Range("a" & Rows.Count))
  
  Set fin = Range("a:a").Find(what:="total", LookIn:=xlValues, lookat:=xlWhole, _
    SearchDirection:=xlNext, after:=deb)
  
  Range(deb, fin).EntireRow.Select
End Sub

Edit: et je brais bien le bon jour à 00
 

Pièces jointes

Dernière édition:
Re : Macro selection ensemble de lignes entre 2 critères sur même colonne

Super!!!

ça marche nickel selon le lien reçu!

Je le met en application a mon boulot et vous dit quoi!!

Encore merci pour votre rapidité et votre efficacité!

Merci
 
Re : Macro selection ensemble de lignes entre 2 critères sur même colonne

Alors après mise en situation sur mon document, ça bug sur une situation!
La commande bug lorsqu'il ne trouve pas le critère de départ "A1" par exemple.

En fait, pour mon travail, la macro permettrait de récupérer chaque jours les différents segments voulut (contenu et total) et de les transférer sur une autre feuille.
Il arrive qu'il n'y est pas certains jours certains segments. Comment pourrais je détourner justement ce problème c'est à dire demander a excel de continuer son travail sur les autres segments présents sans buguer sur le segment pas présent pour son exécution!

J’espère que j'arrive à me faire comprendre lol pas évident.

En fait ajouter une sorte de condition SI A1 n'est pas présent passer au segment suivant A5 FIT ( segments présent sur le code joint)

Au final il y a un total de 12 segments et les contenus a transférer pas tous présent simultanément chaque jours.

Merci pour votre aide!

Code:
Dim deb As Range, fin As Range

  Windows("AGCE.xls").Activate
  Set deb = Range("a:a").Find(what:="A1", LookIn:=xlValues, lookat:=xlWhole, _
    SearchDirection:=xlNext, after:=Range("a" & Rows.Count))
  
  Set fin = Range("a:a").Find(what:="total", LookIn:=xlValues, lookat:=xlWhole, _
    SearchDirection:=xlNext, after:=deb)
  
  Range(deb, fin).EntireRow.Select
  
  Selection.Copy
  Windows("06-JUIN.xls").Activate
    Range("A2").Select
    ActiveSheet.Paste
    
  Windows("AGCE.xls").Activate
  Set deb = Range("a:a").Find(what:="A5 FIT", LookIn:=xlValues, lookat:=xlWhole, _
    SearchDirection:=xlNext, after:=Range("a" & Rows.Count))
  
  Set fin = Range("a:a").Find(what:="total", LookIn:=xlValues, lookat:=xlWhole, _
    SearchDirection:=xlNext, after:=deb)
  
  Range(deb, fin).EntireRow.Select
  
  Selection.Copy
  Windows("06-JUIN.xls").Activate
    Range("A55").Select
    ActiveSheet.Paste

    
End Sub

Je vous envois aussi en pièce joint les doc Excel!
La macro est sur le modul 1 du fichier 06-JUIN
 

Pièces jointes

Dernière édition:
Re : Macro selection ensemble de lignes entre 2 critères sur même colonne

Bonjour ginius,

Voir le fichier joint version v2(1).
Le code:
VB:
Sub IMPORTAGCE_CIE()
'
' IMPORTAGCE_CIE Macro
' Macro enregistrée le 16/06/2013 par ROIREC01
'
Dim deb As Range, fin As Range, Quoi As String

With Workbooks("AGCE.xls").Worksheets("ALL_Agent_Source")

  Set deb = Nothing: Set fin = Nothing: Quoi = "A5CHIN"
  Set deb = .Range("a:a").Find(what:=Quoi, LookIn:=xlValues, lookat:=xlWhole, _
          SearchDirection:=xlNext, after:=.Range("a" & .Rows.Count))
  If deb Is Nothing Then
    MsgBox "Echec! Le terme '" & Quoi & "' n'a pas été trouvé. On passe au terme suivant"
  Else
    Set fin = .Range("a:a").Find(what:="total", LookIn:=xlValues, lookat:=xlWhole, _
              SearchDirection:=xlNext, after:=deb)
    If fin Is Nothing Then
      MsgBox "Echec! Aucun terme 'Total' d'ici la fin. On passe au terme suivant"
    Else
      .Range(deb, fin).EntireRow.Copy _
          Destination:=ThisWorkbook.Worksheets("Feuil1").Range("A2").EntireRow
    End If
  End If

  Set deb = Nothing: Set fin = Nothing: Quoi = "A5 FIT"
  Set deb = .Range("a:a").Find(what:=Quoi, LookIn:=xlValues, lookat:=xlWhole, _
          SearchDirection:=xlNext, after:=.Range("a" & .Rows.Count))
  If deb Is Nothing Then
    MsgBox "Echec! Le terme '" & Quoi & "' n'a pas été trouvé. On passe au terme suivant"
  Else
    Set fin = .Range("a:a").Find(what:="total", LookIn:=xlValues, lookat:=xlWhole, _
              SearchDirection:=xlNext, after:=deb)
    If fin Is Nothing Then
      MsgBox "Echec! Aucun terme 'Total' d'ici la fin. On passe au terme suivant"
    Else
      .Range(deb, fin).EntireRow.Copy _
          Destination:=ThisWorkbook.Worksheets("Feuil1").Range("A55").EntireRow
    End If
  End If
    
End With
End Sub


Nota: une autre méthode dans le fichier version v2(1). Le code est commenté. Il y a 4 constantes à compléter dans le code.
 

Pièces jointes

Re : Macro selection ensemble de lignes entre 2 critères sur même colonne

Un grand merci a toi mapomme!! ça marche du tonner! ça va m’être d'un gain de temps maintenant!
Je n'ai pas put répondre plus tot ( fêtes de fin d'année de mes enfants)

Merci encore c'est vraiment sympas d'etre dispo pour nous es débutants!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
56
Réponses
5
Affichages
235
Réponses
7
Affichages
106
Retour