|
|
|
|
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) |
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. |
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.
|
Bonjour,
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 |
Je vous remercie tous.
Vous etes vraiment sympa ça va me faciliter la vie car jusqu'a aujourdhui je recopie mes references a la main (pas tres rapide) Encore merci, je faire la macro cette apres midi. |
Résultats pour [macro vba excel]question toute bete ?
Résultats pour [macro vba excel]question toute bete ?