[macro vba excel]question toute bete ?
Fermé
Bonjour, je ne sais pas programmer mais je crois que seule une macro resolve mon probleme.
Les données :
un classeur excel de deux feuilles; produit et facture.
dans "produit" deux colonnes : reference et quantite.
Comment faire pour retrouver dans ma feuille "facture" uniquement les references des produits dont la quantite est superieure à 0 ? (sur une colonne et sans saut de ligne)
Merci de vos efforts pour resoudre mon probleme, peut être simple pour vous mais quasi insurmotable pour moi.
Les données :
un classeur excel de deux feuilles; produit et facture.
dans "produit" deux colonnes : reference et quantite.
Comment faire pour retrouver dans ma feuille "facture" uniquement les references des produits dont la quantite est superieure à 0 ? (sur une colonne et sans saut de ligne)
Merci de vos efforts pour resoudre mon probleme, peut être simple pour vous mais quasi insurmotable pour moi.
A voir également:
- [macro vba excel]question toute bete ?
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
5 réponses
Armojax
Messages postés
1860
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
2 octobre 2024
1 528
21 avril 2006 à 14:39
21 avril 2006 à 14:39
Hello phil,
Tu peux te faire toi-même ta macro, avec l'enregistreur de macro.
1) Dans ta feuille Produit, commence par installer un filtre sur ta colonne Quantité (sélectionne toute la colonne, puis : Données/Filtrer/Filtre automatique).
2) Entraîne-toi à l'enchaînement suivant :
- clique sur le filtre
- choisis, tout en bas, l'option Non vides
- sélectionne la colonne Référence et copie-la
- active la feuille Facture
- sélectionne la première cellule de la colonne où tu veux le résultat
- et copie.
Quand tu seras sûr de toi, enregistre la manip :
3) Outils/Macro/Nouvelle macro
- Nom de la macro : tu laisses ou tu choisis le nom que tu veux
- Touche de raccourci : entre une lettre majuscule (par exemple M comme macro)
- Enregistrer la macro dans : Ce classeur
- OK
4) Tu réalises la manip du point 2)
5) Tu arrêtes l'enregistrement (soit tu vois le bouton carré et tu cliques dessus, soit tu fais : Outil/Macro/Arrêter l'enregistrement)
Et c'est tout.
Par la suite, pour obtenir ton résultat, il te suffira d'enfoncer simultanément les touches <CTRL + MAJ + M> (si tu as choisi M, évidemment)
Tu peux te faire toi-même ta macro, avec l'enregistreur de macro.
1) Dans ta feuille Produit, commence par installer un filtre sur ta colonne Quantité (sélectionne toute la colonne, puis : Données/Filtrer/Filtre automatique).
2) Entraîne-toi à l'enchaînement suivant :
- clique sur le filtre
- choisis, tout en bas, l'option Non vides
- sélectionne la colonne Référence et copie-la
- active la feuille Facture
- sélectionne la première cellule de la colonne où tu veux le résultat
- et copie.
Quand tu seras sûr de toi, enregistre la manip :
3) Outils/Macro/Nouvelle macro
- Nom de la macro : tu laisses ou tu choisis le nom que tu veux
- Touche de raccourci : entre une lettre majuscule (par exemple M comme macro)
- Enregistrer la macro dans : Ce classeur
- OK
4) Tu réalises la manip du point 2)
5) Tu arrêtes l'enregistrement (soit tu vois le bouton carré et tu cliques dessus, soit tu fais : Outil/Macro/Arrêter l'enregistrement)
Et c'est tout.
Par la suite, pour obtenir ton résultat, il te suffira d'enfoncer simultanément les touches <CTRL + MAJ + M> (si tu as choisi M, évidemment)
Merci pour tes explications particulierement claires (ce qui est rare sur les autres forums vba que j'ai pu consulter).
Je voulais eviter de faire un tri de ma colonne reference produit mais si c'est la solution je vais m'en sortir comme ça.
Encore merci.
Je voulais eviter de faire un tri de ma colonne reference produit mais si c'est la solution je vais m'en sortir comme ça.
Encore merci.
Désolé ça marche pas, parce que :
1 - le nombre de références superieures à "0" varie.
2 - la liste des références est triée par ordre croissant pour appliquer la fonction "rechercheV"
Merci de tes efforts.
Le problème reste entier.
1 - le nombre de références superieures à "0" varie.
2 - la liste des références est triée par ordre croissant pour appliquer la fonction "rechercheV"
Merci de tes efforts.
Le problème reste entier.
Armojax
Messages postés
1860
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
2 octobre 2024
1 528
21 avril 2006 à 22:05
21 avril 2006 à 22:05
Phil,
Bon, reste quand même qu'on peut faire une petite macro VBA sur mesure pour régler ton problème...
Il faut juste que tu dises :
- l'orthographe précise du nom de tes 2 feuilles (Produit, Facture)
- en quelles colonnes se trouvent les références et les quantités
- si tu as des entêtes de colonnes, et en quelle ligne commencent les données
- à quel endroit de la feuille Facture tu veux les résultats.
Si tu as un petit échantillon pour exemple, que tu mets ici, ou sur https://www.cjoint.com/ c'est encore mieux.
Bon, reste quand même qu'on peut faire une petite macro VBA sur mesure pour régler ton problème...
Il faut juste que tu dises :
- l'orthographe précise du nom de tes 2 feuilles (Produit, Facture)
- en quelles colonnes se trouvent les références et les quantités
- si tu as des entêtes de colonnes, et en quelle ligne commencent les données
- à quel endroit de la feuille Facture tu veux les résultats.
Si tu as un petit échantillon pour exemple, que tu mets ici, ou sur https://www.cjoint.com/ c'est encore mieux.
Utilisateur anonyme
21 avril 2006 à 23:50
21 avril 2006 à 23:50
Bonjour,
alors voici un exemple :
attention, j'ai codé à la volé encore une fois, ce n'est peut-être
pas parfait, je l'ai testé dans mon environnement.
copier la routine dans l'éditeur VBA et elle devrait apparaître
au menu.
Lupin
alors voici un exemple :
Sub MiseAJour() Const PDS = "Produits" Const FCT = "Facture" Dim Longueur As Long Dim Boucle As Long Dim Reference As Variant Dim Quantite As Variant 'Application.DisplayAlerts = False 'Application.ScreenUpdating = False Sheets(FCT).Select: Range("A2").Select Sheets(PDS).Select Longueur = Range("A2:A65535").End(xlDown).Row For Boucle = 2 To Longueur If (Cells(Boucle, 2).Value > 0) Then Reference = Cells(Boucle, 1).Value Quantite = Cells(Boucle, 2).Value Sheets(FCT).Select ActiveCell.Offset(0, 0).Value = Reference ActiveCell.Offset(0, 1).Value = Quantite ActiveCell.Offset(1, 0).Select Sheets(PDS).Select End If Next Boucle 'Application.ScreenUpdating = True 'Application.DisplayAlerts = False End Sub
attention, j'ai codé à la volé encore une fois, ce n'est peut-être
pas parfait, je l'ai testé dans mon environnement.
copier la routine dans l'éditeur VBA et elle devrait apparaître
au menu.
Lupin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question