IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Sélection de cellule multiples


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2018
    Messages : 23
    Par défaut Sélection de cellule multiples
    Bonjour,
    Je cherche à sélectionner toutes les cellules des colonnes H:K en fonction de la valeur insrcite colonne A.

    Voici le code que j'ai fait mais qui ne fonctionne pas.
    Si quelqu'un peut m'aider?

    Merci beaucoup de votre aide.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub RechercheSelect()
    Dim R As Range
    Dim C As Range
    Dim var
     
    Range("A:A").Select
    var = 1249
     
    If IsNumeric(var) Then var = CDbl(var)
    For Each C In Selection
      If C = var Then
        If R Is Nothing Then
          Set R = C
        Else
          Set R = Application.Union(R, C)
        End If
      End If
    Next C
    If Not R Is Nothing Then
      R.Select
    'Selection(, 8).Resize(, 4).Select (Ca ne marche pas)
    Else
      MsgBox "Aucun bon d'achat N°" & var & " n'a été trouvée"
    End If
    End Sub

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2018
    Messages : 23
    Par défaut Sélection de cellule multiples
    Bonjour,
    Je cherche à sélectionner toutes les cellules des colonnes H:K en fonction de la valeur insrcite colonne A.

    Voici le code que j'ai fait mais qui ne fonctionne pas.
    Si quelqu'un peut m'aider?

    Merci beaucoup de votre aide.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub RechercheSelect()
    Dim R As Range
    Dim C As Range
    Dim var
     
    Range("A:A").Select
    var = 1249
     
    If IsNumeric(var) Then var = CDbl(var)
    For Each C In Selection
    If C = var Then
    If R Is Nothing Then
    Set R = C
    Else
    Set R = Application.Union(R, C)
    End If
    End If
    Next C
    If Not R Is Nothing Then
    R.Select
    'Selection(, 8).Resize(, 4).Select (Ca ne marche pas)
    Else
    MsgBox "Aucun bon d'achat N°" & var & " n'a été trouvée"
    End If
    End Sub

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Pourquoi ne pas simplement utiliser un filtre sur la colonne A ?

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2018
    Messages : 23
    Par défaut
    Je doit ensuite copier coller les valeurs dans un autre tableau. Si je fait un filtre, ça me sélectionne les cellules filtrés aussi.

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Normalement le copier/coller ignore les cellules filtrées, puis-je voir ton code de copie/collage ?

    Tu peux aussi je ter un œil à ce tuto https://philippetulliez.developpez.c...dvancedfilter/, tu peux filtrer et copier en même temps.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2018
    Messages : 23
    Par défaut
    Bonjour,
    En effet ça marche avec le filtre je n'avais pas fait attention, mais là ou j'ai un problème avec cette méthode c'est que je ne veux copier que les lignes comportant des données. Dans mon code ça me copie toute les lignes vides apres le filtres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro1()
     
        Sheets("Base de donnée").Select
        ActiveSheet.Range("$A$1:$O$500").AutoFilter Field:=1, Criteria1:="1249"
        Range("H28:K500").Copy
        Sheets("Bon de commande").Select
        Range("I17").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("J25").Select
    End Sub

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par martinigi Voir le message
    Bonjour,

    Une version une peu modifiée de votre code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Option Explicit
     
    Public R As Range
     
    Sub RechercheSelect(ByVal FeuilleBonAchat As Worksheet, TitreFeuille As Long, ByVal NumeroBonAchat As Variant)
    Dim AireBonAchat As Range
    Dim C As Range
    Dim DerniereLigne As Long
     
        Application.ScreenUpdating = False
        With FeuilleBonAchat
             DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
             Set AireBonAchat = .Range(.Cells(TitreFeuille + 1, 1), .Cells(DerniereLigne, 1))
             For Each C In AireBonAchat
                 If C = NumeroBonAchat Then
                    If R Is Nothing Then
                      Set R = Range(C.Offset(0, 7), C.Offset(0, 10))
                    Else
                      Set R = Application.Union(R, Range(C.Offset(0, 7), C.Offset(0, 10)))
                    End If
                 End If
             Next C
             Set AireBonAchat = Nothing
        End With
        Application.ScreenUpdating = True
     
    End Sub
    Dans le module de Feuil1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Target.Count > 1 Then Exit Sub
     
        If Not Intersect(Target, Range("CelluleBonAchat")) Is Nothing Then
     
           RechercheSelect ActiveSheet, 10, Target
     
           With Range("ResultatCelluleBonAchat")
                If Not R Is Nothing Then
                   R.Select
                   .Value = R.Address
                Else
                  .Value = "Aucun bon d'achat N°" & Range("CelluleBonAchat") & " n'a été trouvé."
                End If
            End With
     
            Set R = Nothing
     
        End If
     
    End Sub
    Nb : Je me suis peut-être emmêlé les pinceaux entre bon d'achat et numéro de commande...

    Pièce jointe 406401
    Dernière modification par Invité ; 25/08/2018 à 08h41.

  8. #8
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    @Patrick bien vu moi j'étais sur ce poste et je n'avais pas vu l'autre

    Bon pour ne pas mettre à la poubelle ce que j'ai commencé (code à adapter bien sur …) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub GetRange()
    Dim Entete_Debut As Byte, Crit, Trouve&, F As Boolean, R As Range
     
    Entete_Debut = 1 ' chiffre variable  pour retirer l'en-tête ou commencé à un ligne précise
    Crit = Application.InputBox("Recherche :", "RECHERCHE BON ACHAT")
    Application.ScreenUpdating = False
    With ActiveSheet
    If Not .AutoFilter Is Nothing Then F = True
        With .Cells(1).CurrentRegion
        Trouve = Application.CountIf(.Columns.Item(1), Crit)
            If Trouve > 0 And Crit > "" Then
                .AutoFilter Field:=1, Criteria1:=Crit
                Set R = .Offset(Entete_Debut, 7).Resize(.Rows.Count - Entete_Debut, 4).SpecialCells(xlCellTypeVisible)
                R.Copy:  Sheets("Bon de commande").Range("I" & Feuil2.Cells(Rows.Count, "I").End(xlUp)(2).Row).PasteSpecial xlPasteValues
            Else
                MsgBox "Aucun bon d'achat N°" & Crit & " n'a été trouvée"
            End If
        If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
        If Crit > "" And Trouve > 0 And F = False Then .AutoFilter
        End With
    End With
    Application.ScreenUpdating = True
    Set R = Nothing
    End Sub
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

Discussions similaires

  1. Réponses: 17
    Dernier message: 27/02/2014, 21h29
  2. Tableau avec sélection cellules multiple
    Par AchmedSeb dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/11/2011, 00h43
  3. Réponses: 6
    Dernier message: 12/04/2007, 18h13
  4. automation Excel: sélection de cellule
    Par jarod_bx dans le forum Access
    Réponses: 3
    Dernier message: 03/11/2005, 15h33
  5. [VBA]Sélection de cellules
    Par joseph1 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/10/2005, 18h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo