Macro complexe

Bonjour le forum,

Je veux créer une macro qui me permet de copier une ligne d'un fichier "Mes ventes" à un autre fichier Excel " Calcul mensuel" avec une condition,

Primo, a la vente d'un produit tu doit renseigner une ligne sur le fichier "mes ventes" (parmi les information a renseigner n° de série)

Vérifier sur le fichier Calcul mensuel si le n° série existe sur la colonne B

si il existe écraser la ligne et la remplacer par celle du fichier "mes ventes"

Si le n° série n'existe pas copier directement

Merci d'avance

bien à vous

SVP, personne ne peut m'aider,

si vous voulez je réexplique en détail ma demande

Merci d'avance

Bonjour Int000

Un petit fichier nous aiderai beaucoup car pour ma part c'est plus simple pour comprendre la problématique.

Merci

Je ne l'ai pas sur moi le fichier en question,

mais ce que je veux c'est une macro qui intervient sur un autre fichier excel

Chaque vendeur a un tableau de suivi perso, et il y'a un fichier qui consolide le tous,

quand j'ai une vente je mentionne sur mon fichier "mes ventes" par exemple le prix, le n° série, quelque infos sur le client et je fais de même sur le fichier "Calcul mensuel" mais il faut vérifier si le N° de série existe ou pas

s'il existe il faut supprimer la ligne et la remplacer pas celle qui est sur "mes ventes"

sinon tu copies la ligne seulement

j’espère que j'étais plus explicite

j'attends votre aide

Merci beaucoup

Bonsoir,

fais-nous un fichier exemple, sans quoi on ne pourra pas t'aider !

j'ai mis en PJ un fichier qui ressemble a mon fichier "Mes ventes"

Maintenant je cherche a transférer la dernière ligne a autre fichier qui s'appel "Calcul mensuel"

si le n° série existe déjà dans le fichier "calcul mensuel" faudra écraser la ligne et copier une nouvelle du fichier mes ventes

si le n° série n'existe pas copier directement la ligne

Autrement dit, je veille a ce que les vendeur me Transfèrent la ligne directement après la vente dans mon fichier "Calcul mensuel"

J’espère que j'étais plus claire

13mes-ventes.xlsx (10.70 Ko)

Bonjour,

voici une proposition de macro. Pour qu'elle fonctionne, les 2 classeurs doivent être ouverts

je t'ai mis la macro dans le classeur calcul mensuel.

Sub recapventes()
Set wsrm = Workbooks("Calcul mensuel.xlsm").Worksheets("feuil1")
Set wsmv = Workbooks("mes ventes.xlsx").Worksheets("feuil1")
dlmv = wsmv.Range("A" & Rows.Count).End(xlUp).Row
dlrm = wsrm.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To dlmv
Set rrm = wsrm.Range("B2:B" & dlrm).Find(wsmv.Cells(i, 2))
If rrm Is Nothing Then
 dlrm = dlrm + 1
 wsmv.Rows(i).Copy wsrm.Range("A" & dlrm)
Else
 wsmv.Rows(i).Copy wsrm.Range("A" & rrm.Row)
End If
Next i
Set wsmv = Nothing
Set wsrm = Nothing
End Sub
15calcul-mensuel.xlsm (14.26 Ko)

ça marche très bien merci a toi

y'a il un moyen d’exécuter la macro sans que le fichier soit ouvert

Impossible??

bonjour

le fichier dans lequel se trouve la macro doit être ouvert.

il est possible de prévoir que la macro ouvre les fichiers qui ne sont pas ouverts et les referme ensuite.

dis-moi dans quel fichier tu veux la macro et dis-moi quel fichier il faut ouvrir, s'il n'est pas ouvert.

l’exécution de la macro se fait sur le fichier "mes ventes" (bien sure il doit être ouvert)

mais le fichier "calcul mensuel" je veux qu'il soit fermé

comme vous avez dit il s'ouvre automatiquement et déc c'est fini l’exécution ça se ferme

merci beaucoup

Bien à vous

Bonsoir,

j'ai donc mis la macro dans le fichier mes ventes

Sub recapventes()
wbopen = True
On Error GoTo terreur
Set wbrm = Workbooks("Calcul mensuel.xlsx")
On Error GoTo 0
If Not wbopen Then
 Set wbrm = Workbooks.Open("Calcul mensuel.xlsx")
End If
Set wsrm = wbrm.Worksheets("feuil1")
Set wsmv = Workbooks("mes ventes.xlsm").Worksheets("feuil1")
dlmv = wsmv.Range("A" & Rows.Count).End(xlUp).Row
dlrm = wsrm.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To dlmv
Set rrm = wsrm.Range("B2:B" & dlrm).Find(wsmv.Cells(i, 2))
If rrm Is Nothing Then
 dlrm = dlrm + 1
 wsmv.Rows(i).Copy wsrm.Range("A" & dlrm)
Else
 wsmv.Rows(i).Copy wsrm.Range("A" & rrm.Row)
End If
Next i
wbrm.Close
Set wsmv = Nothing
Set wsrm = Nothing
Exit Sub
terreur:
If Err = 9 Then
 wbopen = False
 Resume Next
End If
End Sub
6mes-ventes.xlsm (18.94 Ko)

déja je tiens a vous remercier h2so4,

mais je crois qu'il y'a une erreur quelque part

la macro vaut pas s’exécuter

le message d’erreur

"calcul mensuel" introuvable vérifier l’orthographe du nom du fichier....etc

Bonsoir,

le fichier "Calcul mensuel.xlsx" existe-t-il bien ? est-il dans le répertoire par défaut d'excel ? sinon il faut adapter le code et mettre le chemin d'accès devant le nom du fichier.

Rechercher des sujets similaires à "macro complexe"