Créer une macro
Résolu
Lucie17_0626
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Créer une macro
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Créer une adresse hotmail - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Créer un lien pour partager des photos - Guide
4 réponses
Re
le fichier facture
https://mon-partage.fr/f/MXiffhv9/
le fichier récapitulatif
https://mon-partage.fr/f/8wdoFG1W/
Je te rappelle que les deux fichier sont ouverts dans la même session d'excel (dans le menu fenêtre, tu dois les voir tous les deux)
Cdlmnt
le fichier facture
https://mon-partage.fr/f/MXiffhv9/
le fichier récapitulatif
https://mon-partage.fr/f/8wdoFG1W/
Je te rappelle que les deux fichier sont ouverts dans la même session d'excel (dans le menu fenêtre, tu dois les voir tous les deux)
Cdlmnt
Je ne comprends pas ce que tu veux dire.
Peut être veux tu envoyer les données sur le deuxième fichier au lieu de la deuxième feuille du premier.
En fait, je t'ai proposé un début de réponse, mais c'est à toi de continuer. Si tu as un problème, envoie ton travail et expliques clairement ce qui ne focntionne pas
Cdlmnt
Peut être veux tu envoyer les données sur le deuxième fichier au lieu de la deuxième feuille du premier.
En fait, je t'ai proposé un début de réponse, mais c'est à toi de continuer. Si tu as un problème, envoie ton travail et expliques clairement ce qui ne focntionne pas
Cdlmnt
Bonjour,
Je ne peux pas envoyer mon travail car le fichier est trop volumineux.
Sur la macro que tu m'as envoyé tu as mis les deux fichier dans un même classeur mais sur deux feuilles différentes tu arrives donc a nommer tes constantes : F1=Feuil1 et F2=Feuil2
Dans mon fichier le bon de livraison et le tableau récapitulatif sont sur deux classeurs différents car une personne possède le bon de livraison et une autre possède le tableau récapitulatif donc pour nommer mes constantes F1 se trouve dans un autre classeur d'où mon :
F1= Workbooks("A").Worksheets("B") qui représente la classeur ainsi que la feuille contenant le bon de livraison
C'est de cette partie que viens le problème car lors de la formule With la macro bloque.
Mais je te remercie pour ta réponse précédente qui m'a beaucoup aider.
Je ne peux pas envoyer mon travail car le fichier est trop volumineux.
Sur la macro que tu m'as envoyé tu as mis les deux fichier dans un même classeur mais sur deux feuilles différentes tu arrives donc a nommer tes constantes : F1=Feuil1 et F2=Feuil2
Dans mon fichier le bon de livraison et le tableau récapitulatif sont sur deux classeurs différents car une personne possède le bon de livraison et une autre possède le tableau récapitulatif donc pour nommer mes constantes F1 se trouve dans un autre classeur d'où mon :
F1= Workbooks("A").Worksheets("B") qui représente la classeur ainsi que la feuille contenant le bon de livraison
C'est de cette partie que viens le problème car lors de la formule With la macro bloque.
Mais je te remercie pour ta réponse précédente qui m'a beaucoup aider.
Les deux classeurs sont ils ouverts dans la même session d'excel ?
Oui les deux classeurs sont ouvert dans la même session. J'ai essayer de mettre le bon de livraison sur le même classeur que celui du tableau et en faisant cela c'est à la boucle : With Sheets(F1) que ça bloque "l'indice n'appartient pas à la selection"
J'ai repris le début de code que vous m'aviez donné pour essayer.
Option Explicit
' constantes décrivant la configuration - à adapter
Public Const F1 = "Feuil4"
Public Const celdatF1 = "C2"
Public Const celnumF1 = "C6"
Public Const celvaaF1 = "C10"
Public Const celageF1 = "D10"
Public Const plagefF1 = "$A$20:$C$42"
Public Const F2 = "Feuil3"
Public Const covaaF2 = "A"
Public Const coageF2 = "B"
Public Const codesF2 = "C"
Public Const cocomF2 = "D"
Public Const coimeF2 = "E"
Public Const cobonF2 = "F"
Public Const codatF2 = "G"
Public Const comoiF2 = "H"
Public Const coannF2 = "I"
Public Sub Archiver()
Dim ligne As Long
Dim vaahiva As String, qte As Long, num As Long, dat, moi, ann
Dim nbdes As Long, codes As String, lides As Long, numdes As Long
' recupération des données feuille F1
With Sheets(F1)
vaahiva = .RANGE(celvaaF1).Value
num = .RANGE(celnumF1).Value
dat = .RANGE(celdatF1).Value
moi = Month(dat)
ann = Year(dat)
codes = Split(.RANGE(plagefF1).Address, "$")(1)
lides = Left(Split(plagefF1, "$")(2), Len(Split(plagefF1, "$")(2)) - 1)
nbdes = .RANGE(codes & Rows.Count).End(xlUp).Row - lides + 1
End With
' tranfer dans F2
With Sheets(F2)
' première ligne vide colonne A
ligne = .RANGE(covaaF2 & Rows.Count).End(xlUp).Row + 1
' pour chaque designation
For numdes = 1 To nbdes
.RANGE(covaaF2 & ligne).Value = vaahiva
.RANGE(coageF2 & ligne).Value = Sheets(F1).RANGE(plagefF1).Cells(numdes, 1).Value
.RANGE(cocomF2 & ligne).Value = Sheets(F1).RANGE(plagefF1).Cells(numdes, 2).Value
.RANGE(coimeF2 & ligne).Value = Sheets(F1).RANGE(plagefF1).Cells(numdes, 3).Value
.RANGE(codatF2 & ligne).Value = dat
.RANGE(comoiF2 & ligne).Value = moi
.RANGE(coannF2 & ligne).Value = ann
ligne = ligne + 1
Next numdes
End With
End Sub
J'ai repris le début de code que vous m'aviez donné pour essayer.
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Bonne soirée