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

VBA extraire données d'une liste

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

R

rocky9

Guest
Bonjour,

Après avoir tant bien que mal écrit une macro avec l’enregistreur et internet, j’ai comme résultat le fichier ci-joint.

Après avoir renseigné un seuil de tolérance via inputbox, la macro effectué un tableau avec différentes heures.

J’aimerai à partir de cette liste pouvoir extraire les lignes étant inférieur ou égal au seuil de tolérance et les coller proprement sur une nouvelle feuille.

Je sèche vraiment sur le code à écrire pourriez vous me mettre sur la voie svp ?
Merci
 

Pièces jointes

Re : VBA extraire données d'une liste

Bonsoir,
Pour le fun, avec le filtre élabored...
Code:
Sub Macro1()
Range("G1") = Range("B1")
Range("G2") = "<" & CDbl(Range("E1"))
Range("A1:B" & Range("A65000").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "G1:G2"), CopyToRange:=Range("G4:H4"), Unique:=False
End Sub
...sinon
Code:
Sub Macro2()
Dim t(), i&, x&
For i = 2 To [a65000].End(xlUp).Row
    If CDbl(Cells(i, 2)) < CDbl(Cells(1, 5)) Then
        x = x + 1
        ReDim Preserve t(1 To 2, 1 To x)
        t(1, x) = Cells(i, 1)
        t(2, x) = Cells(i, 2)
    End If
Next
Range("G1").Resize(UBound(t, 2), 2) = Application.Transpose(t)
End Sub
A+
kjin
 
Re : VBA extraire données d'une liste

Bonsoir,

Merci pour la reponse, j'ai essayé mais cela n'a pas filtré.
Le même tableau a été recollé sans avoir était filtré par inférieur ou égal à la cellule E1.
 
Re : VBA extraire données d'une liste

Bonsoir Rocky, Kjin, bonsoir le forum,

Kjin a parlé plus vite et plus mieux bien comme d'hab... Tant pis, j'envoie quand même mon idée. En pièce joint ton fichier modifié aveec la macro ci-dessous :
Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim x As Integer 'déclare la variable x (incrément de ligne)
Dim dest As Range 'déclare la variable dest (DESTination)
 
dl = Sheets("Feuil1").Cells(Application.Rows.Count, 2).End(xlUp).Row 'définir la dernière ligne éditée de la colonne B
For x = dl To 2 Step -1 'boucle inversée sur toutes les cellules éditées de la colonne B de la dernière à la seconde
    'si la valeur de la cellule est inférieur ou égale à la valeur de la cellule E1
    If Cells(x, 2).Value <= Sheets("Feuil1").Range("E1").Value Then
        Set dest = Sheets("Feuil2").Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination
        Range(Cells(x, 1), Cells(x, 2)).Copy dest 'copie les deux cellules de la ligne et les colle dans dest
        Rows(x).Delete shift:=xlShiftUp 'supprime la ligne des cellule tranférée
    End If 'fin de la condition
Next x 'prochaine cellule de la boucle
End Sub
 

Pièces jointes

Re : VBA extraire données d'une liste

Bonjour Robert,

j'ai adapté ta macro car j'ai rajouté une colonne en plus.


Ca coince au niveau de:

Range(Cells(x, 1), Cells(x, 3)).Copy dest

Ca ne me copie plus l'extraction.
 
Dernière modification par un modérateur:
- 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

B
Réponses
2
Affichages
2 K
bastienb
B
I
  • Question Question
Réponses
2
Affichages
980
inconnu
I
J
Réponses
3
Affichages
4 K
jonleboss
J
B
Réponses
10
Affichages
5 K
B
O
Réponses
9
Affichages
3 K
gillesbe
G
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…