XL 2013 Création d'une routine !?

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

Dicas

XLDnaute Junior
Bonjour à toutes et tous !!
Je travaille sur un gestionnaire de Stocks et réappros de médicaments.
Je cherche la routine qui saura agir consécutivement sur chaque enregistrement ainsi :
Si BM1>0; Copier BL1 en BK1 et effacer en BO1 et en BP1
Si non ; enregistrement suivant
Pour lequel :
Si BM2>0.................
J'ai fait l'erreur de copier BL et coller en BK la colonne entière entre lignes 9 et 75 en entraînant les valeurs zéro de toutes les lignes vides..... et je tourne en rond ...
Pouvez-vous m'aider ?
 

Pièces jointes

Salut,

Pas bien compris ton fichier...

Essaie quelque chose comme ça :
VB:
Sub mlk()
i = 1
Do
If Range("bm" & i) > 0 Then
    Range("bl" & i).Copy
    Range("bk" & i).PasteSpecial
    Range(Range("bo " & i), Range("bp" & i)).Clear
End If
i = i + 1
Loop Until IsEmpty(Range("h" & i))
End Sub
 
Bonjour Dicas,

quelques difficultés à convertir votre classeur en XL 2003: plantages excel, puis un classeur où il semble que la première cellule 'intéressante' soit BM9, et aucune macro.

est ce normal ou est ce dû à un soucis de conversion ?

A+

une autre solution, à adapter:

Code:
Sub Dicas()
For i = 9 To Range("BM" & Rows.Count).End(xlUp).Row ' à adapter <==
    If Range("BM" & i) = 0 Then
        Range("BK" & i) = Range("BL" & i)
        Range(Range("BO" & i), Range("BP" & i)).ClearContents
    End If
Next
End Sub
 
Dernière édition:
re,

Trouver qu'une feuille sans macro, la conversion a cafouillé, mais pas important voir la proposition de code rajoutée au post 3 ( et celle du post 2)

A+

Edit :
Bonjour et merci Yurperqod, je croyais que c'étais l'auteur de la conversation qui me répondait !!
 
Dernière édition:
Hieu !! Bonjour !!!
Merci de ton aide!
J'ai une erreur de compilation d'entrée sur Sub mlk() et i = 1
La pièce jointe intègre ton code sous le bouton "Confirmation des Entrées Stock"
Pour pallier à mon imprécision... et répondre un peu à ta question...
Chaque ligne d'enregistrement comprend les infos suivantes (de gauche à droite)
La rubrique "En Cours" ce sont les chiffres qui précisent ce que détient personnellement le malade pour ses soins de la semaine (stock aval): sa consommation (déjà pris depuis qu'on lui a préparé son semainier) et son stock (reste à prendre à sa disposition) C'est suivit d'heures en heures.
La rubrique "stocks", sur laquelle on travaille la gestion et la mise à jour hebdomadaire du Stock (stock amont). Elle sert a vérifier constamment que les quantités nécessaires au prochain rechargement de semainier sont disponibles ou qu'en tout cas, elle le seront à temps. Elle sert aussi à gérer en les groupant les appros nécessaires avec une ou deux semaines d'avance.
La rubrique "Achats" répond à ces deux dernières nécessités en évaluant les besoins et les délais.
 

Pièces jointes

Là, ça marche !
Avec une tite modif, puisqu'on sait de où à où on loop, j'ai changé la boucle
Code:
Sub mlk()
Dim i As Integer
For i = 9 To Range("h65536").End(xlUp).Row
If Range("bm" & i) > 0 Then
    Range("bk" & i) = Range("bl" & i)
    Range(Range("bo" & i), Range("bp" & i)).ClearContents    ' cette ligne ne fonctionne pas
End If
Next i
End Sub
Il y avait un espace qui fasait bug le prog : Range("bo " & i) == > Corrected !!

edit :
voir post #3 !!
@Paf oups ^^ Dsl ^^
Pas vu. au temps pour moi.
Comme quoi, on a la meme facon de programmer !!
 

Pièces jointes

Dernière édition:
Là, ça marche !
Avec une tite modif, puisqu'on sait de où à où on loop, j'ai changé la boucle
Code:
Sub mlk()
Dim i As Integer
For i = 9 To Range("h65536").End(xlUp).Row
If Range("bm" & i) > 0 Then
    Range("bk" & i) = Range("bl" & i)
    Range(Range("bo" & i), Range("bp" & i)).ClearContents    ' cette ligne ne fonctionne pas
End If
Next i
End Sub
Il y avait un espace qui fasait bug le prog : Range("bo " & i) == > Corrected !!

edit :
voir post #3 !!
@Paf oups ^^ Dsl ^^
Pas vu. au temps pour moi.
Comme quoi, on a la meme facon de programmer !!
 
Bonjour aux uns !! Bonjour aux autres !!! et MERCI à tous !!
Je ne suis pas expert, je ne sais me repérer dans vos codes que par analogie... et ça rate souvent... Alors il y a des brides de votre conversation qui m'ont quelque peu échappées... Mais le tout est maintenant ficelé derrière un bouton et ça fonctionne à merveille !!!
A+
 
- 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
Retour