(macro) Selection de plusieurs lignes et colonnes sous condition

Bonjour à tous et à toutes :slight_smile:

Merci par avance pour le temps que vous accorderez à ma demande.

Je précise que je suis un novice à 100%, c’est la première fois je tente d’effectuer une macro VBA.
Soyez indulgent, beaucoup de choses qui peuvent vous paraitre simple m’ont fait transpirer :slight_smile:

Pour simplifier la vie (et un gain de temps évident) à moi même et à plusieurs de mes collègues de travail, j’ai pour « projet » de créer une macro pour faciliter la sélections de plusieurs éléments dans un tableau sous condition.

Je m’explique, je souhaiterai à l’aide d’un bouton (avec macro) sectionner plusieurs cellules présentes sur une ligne (toujours les mêmes colonnes : B, D, H, I, J, K, Q, R) à condition que la colonne C contienne l’élément « CDI », puis passer à la ligne suivante ect…

Exemple : En commençant par la ligne 3, si colonne C contient l’élément « CDI » alors sélection B3, D3, H3, I3, J3, K3, Q3, R3 puis enchainer sur la ligne 4, ect…
(en comptant max 50 lignes sur le tableau)

Voici ce que j’ai fait pour le moment :slight_smile: :

Private Sub CommandButton1_Click()
Dim OK As Variant, KO As Variant
KO = Row
OK = Cells.Intersect(KO, B, D, H, i, J, K, Q, R)
For Each Cell In Range(« C:C50 »)
If Cell.Value = « CDI » Then
OK.Select
End If
Next
End Sub

j’ai compris que : " if / end if" permet de fixer la condition, fixer une variable est important dans le calcul de la macro ( j’ai mis Variant car les cellules peuvent contenir soit des chiffres / soit des lettres).
Je pense qu’il existe une méthode à base de +1 pour passer d’une ligne à l’autre (à moins que NEXT soit suffisant pour mettre en place la boucle).

Je suis ouvert à toutes remarques pour progresser et apprendre ! :slight_smile:

Bonjour,
Merci de préciser la suite, car sélectionner et une chose, mais pour en faire quoi?

image

Bonjour ! :grin:

Merci pour ton retour.

Après la sélection, je compte copier-coller le contenu dans un support externe à Excell (word, pdf, ect…) sous forme de tableau synthétique(Déjà preconstruit).

Je ne vois pas l’intérêt de l’intégrer à la macro pour ma part, un bête Ctrl+C/Ctrl+V me suffit amplement.

Cordialement.

Re,
A tester

Private Sub CommandButton1_Click()
  Dim Colonne(), Ligne As Long, Plage As Range, c
  Colonne = Array("B", "D", "H", "I", "J", "K", "Q", "R")
    For Ligne = 3 To 52
      For Each c In Colonne
          If Not Plage Is Nothing Then
            If Cells(Ligne, 3) = "CDI" Then
              Set Plage = Application.Union(Plage, Range(c & Ligne))
            End If
          Else
            If Cells(Ligne, 3) = "CDI" Then
              Set Plage = Range(c & Ligne)
            End If
          End If
      Next c
    Next Ligne
  Plage.Select
End Sub

Re,

Merci beaucoup Mimimathy !!
Je viens de tester ce matin en arrivant au taf, ça marche du tonnerre ! :slight_smile:

Je vais reprendre ligne par ligne ton code, histoire d’assimiler ce que tu as utilisé :slight_smile:
Avec le temps j’espère être assez à l’aise pour le faire de manière autonome ^^

Encore une fois merci ! problème résolu ! :slight_smile:

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.