Filtrer à partir d'une ListIndex

Bonjour,

Je vous explique mon besoin, j'ai crée un userform avec un comboBox , je souhaite récupérer l’élément sélectionner et le filtrer dans ma base de donnée " BDD1" ensuite remplacer les Non par un Oui dans la colonne CS.

J'ai trouvé le code qui va me permettre de récupérer l’élément sélectionner mais je ne sais pas comment faire la suite.

Private Sub CBValidation_Click()

CBMagasin.List (CBMagasin.ListIndex)

Cdlt

Bonjour

Un fichier serait très utile dans ce cas

Ci joint le fichier

15pf-cde-copie.xlsm (52.25 Ko)

Bonjour,

Voici le code que j'ai écrit mais ça marche pas et il me met cette phrase en jaune CBMagasin.List (CBMagasin.ListIndex).

Private Sub CBValidation_Click()
 CBMagasin.List (CBMagasin.ListIndex)
 Sheets("BDD1").UsedRange.AutoFilter Field:=92
 Sheet.Columns(CS).Select
 Selection.Replace What:="Oui", Replacement:="Non", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
 ActiveSheet.AutoFilterMode = False
End Sub

Cdlt

Bonjour

soukaina a écrit :

j'ai crée un userform avec un comboBox

Tu n'as pas fourni le bon fichier

Pas d'userform

A suivre

Ci joint le bon fichier.

15pf-cde-2-copie.xlsm (59.21 Ko)

Bonjour

Peux tu indiquer la colonne à filtrer, car je n'ai pas vu dans les entêtes "Code Magasin", dans la macro tu notes la colonne 92 qui correspond à "NB pal"

Ensuite tu veux placer dans la colonne la valeur de la comboxbox "CBPreparer", exact ?

A te lire

Bonjour,

Par exemple je sectionne le magasin 35 et Non " a préparer "sur mon userform, ensuite je filtre le numéro du magasin 35 sur la feuille BDD1 la colonne CL puis je sélectionne la colonne CS et je remplace les Oui par Non.

CODE MAGASIN COLONNE "CL"

A PRÉPARER COLONNE "CS"

Cdlt

Bonjour

A vérifier si c'est le résultat attendu

Bonjour,

Je te remercie ça marche bien sauf je souhaite ajouter tout ce que je saisie sur le champ commentaire il m'enregistre vers la dernière colonne de ma BDD1 .

J'ai pensé ajouter ça à la suite du code

.Cells(Ligne, 100) = Application.Proper(Me!TBCommentaires)

mais ça n'a pas marcher.

Private Sub CBValidation_Click()
 'CBMagasin.List (CBMagasin.ListIndex)
 Dim Avant As String
  If Me.CBPreparer.ListIndex = 0 Then
    Avant = "Non"
  Else
    Avant = "Oui"
  End If

  With Sheets("BDD1")
    .Range("A3").CurrentRegion.AutoFilter Field:=90, Criteria1:=Me.CBMagasin
    .Columns("CS").Replace What:=Avant, Replacement:=Me.CBPreparer, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    .AutoFilterMode = False
    .Cells(Ligne, 100) = Application.Proper(Me!TBCommentaires)
  End With
End Sub

Cordialement

Bonjour

Remplace ta macro actuelle par celle-ci

Private Sub CBValidation_Click()
Dim NbLg As Long

 Dim Avant As String
  If Me.CBPreparer.ListIndex = 0 Then
    Avant = "Non"
  Else
    Avant = "Oui"
  End If

  With Sheets("BDD1")
    NbLg = .Range("CL" & Rows.Count).End(xlUp).Row
    .Range("A3").CurrentRegion.AutoFilter Field:=90, Criteria1:=Me.CBMagasin
    .Columns("CS").Replace What:=Avant, Replacement:=Me.CBPreparer, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    .Range("CV4:CV" & NbLg).Value = Application.Proper(Me.TBCommentaires)
    .AutoFilterMode = False
  End With
End Sub

Bonjour,

J'ai un autre souci je veux écrire une macro qui calcule que certaines colonnes dans des onglets précis .

J'ai essaye ce code mais ca marche pas

Sub calculate()

Activesheets.Range("CS4:CS"). Calculate

End sub

CDLT

Bonjour

ActiveSheet : ll ne faut pas de s à la fin

"CS4:CS" : Il manque la limite supérieure exemple "CS4:CS10"

Évite de donner un nom réservée au VBA à une procédure (risque d'erreur) : A la place de Calculate utilises Calcul

Ton code pourrait donner ça

Sub Calcul()
  ActiveSheet.Range("CS4:CS10").Calculate
End Sub

Ceci est valable lorsque tu es en calcul manuel, parce que les formules sont actualisées en temps réel

Merci ça marche super bien

Bonjour,

Je suis bloquée sur une autre macro.

Aujourd'hui j'ai 6 dépôts et je veux anticiper la rupture de ces dépôts 7 jours en avance. du coup j'ai crée un userform pour sélectionner le dépôt et chercher les articles au dessous de 7 jours de couverture.

Ensuite je choisis mon dépôt en ordre je le définis par exemple on a besoin de 200 pièces je veux qu'il commence à cherche sur le dépôt le plus proche Depot B s'il ne trouve pas cette quantité il passe au Depot D puis ensuite le Depot C .

Vers la fin je veux une liste des codes articles et la quantité à transférer., suite à cette sélection, je veux générer un numéro de transfert et la date du transfert.

Je n'arrive pas à joindre le fichier parce qu'il fait plus de 14400 ko.

Bien cordialement

Bonjour Soukaina,

Vu que tu as un nouveau problème, je te conseille de cloturer ce fil et d'ouvrir un nouveau.

Pour joindre les fichiers plus gros, tu peux toujours utiliser : http://www.cjoint.com/

Cordialement,

Rechercher des sujets similaires à "filtrer partir listindex"