Problème de sélection cellules excel

  • Initiateur de la discussion Initiateur de la discussion pat9302
  • 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 !

P

pat9302

Guest
bonjour,

Dans le classeur joint, j'ai crée une macro pour sélectionner des cellules comprises entre 2 valeurs et ensuite cette sélection est recopié sur la feuille temp. Mon problème est que dès que des cellules sont jointes excel ne les recopie pas?
Merci de votre aide.
 

Pièces jointes

Re : Problème de sélection cellules excel

Bonjour pat9302, bienvenue sur XLD,

Sur le test que tu nous demande de faire, as-tu remarqué que vselect = Nothing?
Normal que ça plante.
Il doit y avoir un cas de figure que tu n'as pas pris en compte.
Pour t'aider plus il faut que tu nous expliques ce que tu veux faire.
 
Re : Problème de sélection cellules excel

Bonjour et merci de ton accueil,

Je cherche à faire une sélection automatique de nombre entre 2 barrières mini-maxi et suivant un type (a, m, 2f).Puis une recopie sur la feuille Temp pour un traitement futur.
Je ne rencontre aucun problème tant que la sélection ne trouve pas de cellules jointes ex: mini 10 maxi 199 type m le tout en se positionnant au départ sur la cellule B3. Dès que dans la sélection des cellules sont jointes un blanc dans la feuille Temp remplace les 2 cellules?
 
Re : Problème de sélection cellules excel

Re bonjour,

J'ai du mal à comprendre ta macro.
Par exemple, pourquoi une boucle sur les colonnes 2 à 7 alors que tu analyse la colonne B 😕
J'ai préféré faire un autre code si tu n'y vois pas d'inconvénient.
Code:
Sub test()
   ' sélectionner les cellules
  Dim Plage As Range
  Dim Vmin As Integer, Col As Long
  Dim Vmax As Integer, Vtype As String, Xtype As Range
 
  Vmin = InputBox("Min")
  Vmax = InputBox("Max")
  Vtype = InputBox("Type")
  Col = Selection.Column
  For Each Xtype In Range("I4:I150")
    If Xtype.Value = Vtype And Xtype.Offset(0, -7).Value >= Vmin _
    And Xtype.Offset(0, -7).Value <= Vmax Then
      If Plage Is Nothing Then
        Set Plage = Xtype.Offset(0, -7)
      Else: Set Plage = Union(Plage, Xtype.Offset(0, -7))
      End If
    End If
  Next
  With Sheets("Temp")
    .Cells.Clear
    .[A1].Value = Plage.Cells.Count
    Plage.Copy .[B1]
  End With
End Sub
 
Dernière édition:
Re : Problème de sélection cellules excel

RE-Bonjour Skoobi

Je boucle sur les colonnes 2 à 7 pour quen fonction du type choisi (m,a,2f) il vérifie sur les cellules contenant "dis" si il doit me la sélectionnée en plus des chiffres inclus entre mini et maxi. Si sur la même ligne il trouve plus de 3 "dis" il ne sélectionne pas si il en trouve moins il prends en compte cette cellule.
 
Re : Problème de sélection cellules excel

Re-bonjour,

pour compléter ma réponse, après la mise sur la feuille temp une autres macro inter-change les valeur entre elles sur la feuille 1, en fait j'essayes chaque valeur une à une à l'emplcemant d'une autre etc..


Merci pour le code et pour ta dextérité à répondre

A+
 
Re : Problème de sélection cellules excel

Encore un oubli

Dans ton code, Skoobi, tu remarqueras que tu retrouves la même erreur que moi au niveau de la sélection quand 2 cellules jointes correspondent aux critères il n'en prends qu'une. (ligne 45 et 46)

A+
 
Re : Problème de sélection cellules excel

Bonjour,

RE-Bonjour Skoobi

Je boucle sur les colonnes 2 à 7 pour quen fonction du type choisi (m,a,2f) il vérifie sur les cellules contenant "dis" si il doit me la sélectionnée en plus des chiffres inclus entre mini et maxi. Si sur la même ligne il trouve plus de 3 "dis" il ne sélectionne pas si il en trouve moins il prends en compte cette cellule.

Voici le code modifié:

Code:
Sub test()
   ' sélectionner les cellules
  Dim Plage As Range
  Dim Vmin As Integer, Col As Long
  Dim Vmax As Integer, Vtype As String, Xtype As Range
 
  Vmin = InputBox("Min")
  Vmax = InputBox("Max")
  Vtype = InputBox("Type")
  Col = Selection.Column
  For Each Xtype In Range("I4:I150")
    If Xtype.Value = Vtype And Xtype.Offset(0, -7).Value >= Vmin _
    And Xtype.Offset(0, -7).Value <= Vmax Then
      If Plage Is Nothing Then
        Set Plage = Xtype.Offset(0, -7)
      Else: Set Plage = Union(Plage, Xtype.Offset(0, -7))
      End If
    ElseIf Xtype.Value = Vtype And Xtype.Offset(0, -7).Value = "Dis" Then
      If Application.CountIf(Range(Xtype.Offset(0, -7), Xtype.Offset(0, -2)), "Dis") <= 3 Then
        If Plage Is Nothing Then
          Set Plage = Xtype.Offset(0, -7)
        Else: Set Plage = Union(Plage, Xtype.Offset(0, -7))
        End If
      End If
    End If
  Next
  With Sheets("Temp")
    .Cells.Clear
    .[A1].Value = Plage.Cells.Count
    Plage.Copy .[B1]
  End With
End Sub

Encore un oubli

Dans ton code, Skoobi, tu remarqueras que tu retrouves la même erreur que moi au niveau de la sélection quand 2 cellules jointes correspondent aux critères il n'en prends qu'une. (ligne 45 et 46)

A+

Euh non! car entre ces 2 lignes, le type n'est pas le même!
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
192
Retour