Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[macro vba excel]question toute bete ?

phil, le vendredi 21 avril 2006 à 13:34:31
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.
Répondre à phil  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Armojax, le vendredi 21 avril 2006 à 14:39: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)
Répondre à Armojax

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
phil, le vendredi 21 avril 2006 à 16:12:47
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.
Répondre à phil

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
phil, le vendredi 21 avril 2006 à 18:27:50
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.
Répondre à phil

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Armojax, le vendredi 21 avril 2006 à 22:05:35
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 http://cjoint.com/ c'est encore mieux.
Répondre à Armojax

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lupin.A, le vendredi 21 avril 2006 à 23:50:45
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
Répondre à Lupin.A

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 phil, le samedi 22 avril 2006 à 13:28:50
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épondre à phil

Résultats pour [macro vba excel]question toute bete ?

VBA Excel - Ecrire dans fichier txt (Résolu) Bonjour à tous Je dois exécuter 2 macros en vba Excel, - une qui ouvre un fichier text et incrémente un tableau de variable, là pas de problème (voici le code épuré pour info) --------------------- Private Sub Command6_Click() On Error GoTo... www.commentcamarche.net/forum/affich-4854458-vba-excel-ecrire-dans-fichier-txt
Filtrer date par macro VBA - pb de format (Résolu) VBA - excel Bonjour à tous, (j'ai trouvé des réponses mais que j'ai déjà testé sans succès) je voudrais faire une macro pour filtrer entre deux dates, dont les valeurs se trouvent soit dans 2 cellules ou dans 2 textbox... le pb est que même... www.commentcamarche.net/forum/affich-2795811-filtrer-date-par-macro-vba-pb-de-format
[VBA - EXCEL] - Appel répertoire courant ? (Résolu) Bonjour a tous, Je travaille actuellement sur des formulaires excel (2003) programés á l'aide de macros VBA. Je souhaite insérer une image de fond sur un formulaire, en lui indiquant qu'elle se trouve dans le répertoire courant. Pour inserer... www.commentcamarche.net/forum/affich-7402412-vba-excel-appel-repertoire-courant

Résultats pour [macro vba excel]question toute bete ?

[VBA Excel] Test Si Dossier Vide (Résolu)Bonjour, J'ai un problème sur Microsoft Excel 2002 (système d'exploitation Windows 2000). Voici le contexte: J'ai créé pour mon travail une macro VBA sous Excel dont le but est (en résumé) de récupérer et de classer des données venant... www.commentcamarche.net/forum/affich-3401120-vba-excel-test-si-dossier-vide
Forcer la saisie de nombre vba excel (Résolu)Bonjour, Bonjour, Je fais une petite macro dans excel et j'ai un petit souci... Je souhaite controler la saisie de ce qui est tapé dans une inputbox. voici le code qui me permet à l'utilisateur de saisir du "texte" (au sens large cad des... www.commentcamarche.net/forum/affich-5979948-forcer-la-saisie-de-nombre-vba-excel
Lenteur exécution macro sous Excel 2007 (Résolu)Bonjour le forum, J’ai un gros problème sur excel 2007 que je n'arrive pas à résoudre, Je dispose de fichiers de données au format csv. Ces fichiers sont mis en forme via une macro sous Excel. Sur la version Excel 2003, cela fonctionne bien,... www.commentcamarche.net/forum/affich-6710486-lenteur-execution-macro-sous-excel-2007