Besoin d'aide sur une macro type "Copier/Coller"

damaelyon

XLDnaute Nouveau
Bonjour à tous,

J'ai créé une macro permettant de copier-coller des données d'un tableau source (PLANNING) vers un autre tableau cible (DDV) en dispatchant ces informations sur la totalité de la feuille afin de faire une fiche récapitulative de mes ventes. Cette macro permet d'enregistrer cette cible en fonction de l'information donné en colonne B.

Cependant, ma macro ne fonctionne que pour la première ligne et j'aimerais pouvoir mettre le bouton associé à la macro en colonne O sur l'ensemble des lignes afin de pouvoir créer ma fiche de vente dès que j'ai les informations.

Mais j'y arrive pô. :(

Merci d'avance pour votre aide.
 

Pièces jointes

  • DDV.xls
    32 KB · Affichages: 62
  • PLANNING.xls
    84 KB · Affichages: 53
  • PLANNING.xls
    84 KB · Affichages: 56
  • PLANNING.xls
    84 KB · Affichages: 61
Dernière édition:

damaelyon

XLDnaute Nouveau
Re : Besoin d'aide sur une macro type "Copier/Coller"

Pfiou, je comprends en gros mais je vais essayer de débroussailler le tout...

Par contre, j'ai 2 messages d'erreur. A l'enregistrement automatique, y'a forcément le message "Le nom proposé contient un caractère interdit : ." qui s'affiche. Et quand j'essaye d'enregistrer, j'ai une erreur d’exécution 438.
 

camarchepas

XLDnaute Barbatruc
Re : Besoin d'aide sur une macro type "Copier/Coller"

damaelyon,

Oups il faut juste ajouter le point dans la chaine autorise

Autorise = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefjhijklmnopqrstuvwxyz_0123456789."

et pour la 2° erreur :

ActiveWorkbook.SaveAs Chemin & Nom
 

bbb38

XLDnaute Accro
Re : Besoin d'aide sur une macro type "Copier/Coller"

Bonjour damaelyon, camarchepas, le forum,
Je viens de découvrir le code de camarchepas à qui j’adresse toutes mes félicitations (Code beaucoup plus élaboré que le mien).
Cependant, je te joins mes fichiers. A l’ouverture du classeur « planning », le classeur « ddv » s’ouvre également. Avec un double click dans la colonne O, on crée la feuille de vente. Dans la cellule choisie s’inscrit « Fiche existante » sur fond jaune. Pour modifier la fiche, je n’ai pas créé le code.

Cordialement,
Bernard
 

Pièces jointes

  • planning.xlsm
    21.3 KB · Affichages: 31
  • ddv.xlsm
    13.1 KB · Affichages: 33
  • planning.xlsm
    21.3 KB · Affichages: 32
  • planning.xlsm
    21.3 KB · Affichages: 31

damaelyon

XLDnaute Nouveau
Re : Besoin d'aide sur une macro type "Copier/Coller"

J'ai une question : dans mon fichier final, j'ai plusieurs onglets où appliquer cette macro. Du coup, dans le code suivant, par quoi puis-je remplacer le nom de l'onglet ?

Workbooks.Open Chemin & DDV
With Workbooks(PLANNING).Sheets("2012")

J'ai teste ActiveSheet ou WorkSheet mais ça ne marche pas...

MAJ : j'ai rien dis, ça marche. :D

Je continue mes tests
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Besoin d'aide sur une macro type "Copier/Coller"

Bonsoir,

Je m'attendais un peu à cette question .
Alors l'on va tout simplement passer le nom de la feuille en paramètre.

Pour chacun des onglets ""Planning"", mettre cette macro

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Transfert ActiveSheet.Name, Target.Row
End Sub

Et donc le nouveau code de la routine Transfert avec 2 paramètres :

Code:
Option Explicit
Sub Transfert(Feuille As String, Ligne As Long)
'
'
Dim Chemin As String, DDV As String, PLANNING As String
Dim Nom As String, Autorise As String
Dim Pointeur As Long, Longueur As Long
Chemin = ThisWorkbook.Path & "\"
DDV = "DDV.xls"
PLANNING = "PLANNING.xls"
Autorise = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefjhijklmnopqrstuvwxyz_0123456789."

Workbooks.Open Chemin & DDV
With Workbooks(PLANNING).Sheets(Feuille)
   Workbooks(DDV).Sheets("Fiche vente").Range("B1").Value = .Range("B" & Ligne)
   Workbooks(DDV).Sheets("Fiche vente").Range("D1").Value = .Range("C" & Ligne)
   Workbooks(DDV).Sheets("Fiche vente").Range("A4").Value = .Range("D" & Ligne)
   Workbooks(DDV).Sheets("Fiche vente").Range("C5").Value = .Range("E" & Ligne)
   Workbooks(DDV).Sheets("Fiche vente").Range("E5").Value = .Range("F" & Ligne)
End With
   
    Nom = Workbooks(DDV).Sheets("Fiche vente").Range("B1") & ".xls"
    'si le document n'a jamais été enregistré
  If Workbooks(DDV).Path = "" Then
    'boîte de dialogue Enregistrer sous
    Application.GetSaveAsFilename Chemin & Nom, FileFilter:="Fichier Excel (*.xls), *.xls", Title:="Choisir un dossier"
   Else
    If Nom = "" Then
Reprise:
     Nom = InputBox("Entrez le nom du fichier ")
     Workbooks(DDV).Sheets("Fiche vente").Range ("B1") & ".xls" = Nom
    End If
     
    If MsgBox("Voulez-vous enregistrer le fichier sous le nom " & Nom & " ?", 4) = 6 Then
        If Dir(Chemin & Nom) <> "" And Nom <> "DDV.xls" Then Kill Chemin & Nom
        'Enregistre dans le même dossier

        Pointeur = 0
        Longueur = Len(Nom)
        Do
        Pointeur = Pointeur + 1
        If InStr(1, Autorise, Mid(Nom, Pointeur, 1)) = 0 Then
            MsgBox "Le nom proposé contient un caractère interdit : " & Mid(Nom, Pointeur, 1), 48
            GoTo Reprise
        End If
        Loop Until Pointeur = Longueur
        ActiveWorkbook.SaveAs Chemin & Nom
        End If

End If
Workbooks(Nom).Close False
End Sub
 

damaelyon

XLDnaute Nouveau
Re : Besoin d'aide sur une macro type "Copier/Coller"

Bonjour camarchepas et bonjour à tous.

Mon projet avance à grand pas grâce à vous et je vous en remercie sincèrement.

Par contre, j'ai un petit soucis. La boite de dialogue finale "enregistrer sous" pour enregistrer le DDV dans le dossier de son choix ne s'ouvre pas...
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 771
Membres
103 662
dernier inscrit
rterterert