Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

bug dans le filtre de la macro

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

K

kalmia

Guest
Bonjour à tous,

J'ai découvert récemment votre communauté et grappillé ici ou là qques idées.
J'ai aujourd'hui un problème avec une macro dont je voudrais qu'elle me réagence les données dans une autre feuille. Voyez en PJ : je veux qu'elle me récupère toutes les infos valides du service Alpha et je ne comprends pas pourquoi je ne récupère qu'une seule ligne (celles en orange sont ignorées)

pouvez-vous m'aider en jetant un coup d'oeil?

Merci
 

Pièces jointes

Re : bug dans le filtre de la macro

Bonjour

tes lignes ne sont pas ignorées mais écrasées
quand tu écris les données


c.Offset(der, 0) = Range("c" & n)
c.Offset(der, 4) = Range("d" & n) & "-" & Range("e" & n)

il faut incrémenter der avec

der=der+1

Non testé mais cela ne doit pas être loin
 
Re : bug dans le filtre de la macro

Bonjour
une autre solution:
Code:
Sub Score()
'***************************************************
' Déclaration des variables important

Dim der_sh1, dr_sh2 As Long
Dim Nom, statut As String
'***************************************************
'***************************************************
Application.ScreenUpdating = False
'pour gagner en rapidité (Application.ScreenUpdating=false ,suppression de  .select,
'utilisation d'une variable devant la boucle For I pour ne pas utiliser de la memoire a chaque changement du n

der_sh1 = Sheets(1).UsedRange.Rows.Count
With Sheets("Feuil2")
Nom = "AL"
statut = "Va"
 der_sh2 = .Range("a65536").End(xlUp).Row
 For n = 1 To der_sh2
If Left((.Range("d" & n).Text), 2) = Nom Then
   If Left((.Range("e" & n).Text), 2) = statut Then
  Set c = Sheets("feuil1").Rows(1).Find(.Range("b" & n), LookIn:=xlValues, lookat:=xlWhole)
   If Not c Is Nothing Then
   c.Offset(der_sh1, 0) = .Range("c" & n)
   c.Offset(der_sh1, 4) = .Range("d" & n) & "-" & .Range("e" & n)
End If
End If
End If
der_sh1 = Sheets(1).UsedRange.Rows.Count  'pour prendre en compte toute les colonnes
Next n
End With

Application.ScreenUpdating = True
'pour rafraichir la page (Application.ScreenUpdating = true)
End Sub
A+
 
Re : bug dans le filtre de la macro

Bonjour,
La solution est celle de fhoest.

J'ai exclu le used range pour avoir mes données bien en ligne..

Merci bcp,

A bientôt
 
- 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.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…