IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copier coller d'un devis


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Commercial
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Commercial

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Par défaut Copier coller d'un devis
    Bonjour à tous,

    Je viens à vous car je désespère sur mon code en effet je n'arrive pas à faire un simple copier coller, voici le code que j'utilise, je précise le code n'est sur aucun des fichier que j'ouvre il est sur un fichier a part.

    Mon objectif est de développer un semi-formulaire avec rappel de devis, lorsque mes commerciaux sont sur leur fichier client, ils ont la possibilités de rappeler leurs anciens devis pour les insérer dans le fichier qui permet de créer les devis instantanément. Le principe est de copié le contenue du devis rappeler à l'aide du bouton parcourir (celui de la macro) et de le copier collé dans le fichier devis (qui s'ouvre grâce à la même macro). Mais je n'arrive pas à copier coller, les erreurs range select etc ... me bloquent ou encore incompatibilité de type.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub importer_données_participants()
        Application.ScreenUpdating = False
        Dim wb As Workbook, Chemin$, dlg As FileDialog, n&, i& '$ pour le type String et & pour le type Long
            Set dlg = Application.FileDialog(msoFileDialogOpen)
            With dlg
                .InitialFileName = "Chemin pour pointer un endroit particulier"
                .AllowMultiSelect = True 'pour plusieurs fichiers sinon mettre a False (dans les deux cas la suite fonctionne)
                .Title = "Import Devis"
                .Show
            End With
                n = dlg.SelectedItems.Count
            If n = 0 Then
                'Rien car pas de fichier selectionné
            Else
                For i = 1 To n
                    Chemin = dlg.SelectedItems.Item(i)
                    Set wb = Workbooks.Open(Chemin)
                    'le fichier est ouvert et la variable wb est le classeur en question.
                    'Tu peux continuer le traitement avec cette variable.
                Next i
            End If
    fin:
        Application.ScreenUpdating = True
        Set dlg = Nothing
        Set wb = Nothing
     
    Set wb1 = Workbooks.Open("C:\Users\Joris Michaud\Documents\Programme Traitement fichier client etape 2\CRM\Dxstep3")
     
            ActiveWorkbook.Sheets(1).Range("A1 : U69") = Workbooks(wb1).Sheets(1).Range("A1 : U69")
     
     
     
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Il y a un problème ici, je pense...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set wb1 = Workbooks.Open("C:\Users\Joris Michaud\Documents\Programme Traitement fichier client etape 2\CRM\Dxstep3")
     
            ActiveWorkbook.Sheets(1).Range("A1 : U69") = Workbooks(wb1).Sheets(1).Range("A1 : U69")
    Je ne sais pas exactement ce que tu veux faire, mais quand tu ouvres wb1, il devient le ActiveWorkbook.
    Et là, tu copies A1:U69 de wb1 vers wb1, donc de lui-même à lui-même...
    De plus wb1 ne semble pas être dimensionné

    Et comme tu écris auparavant
    Tu ne peux pas non plus utiliser celui-ci... (?!)

  3. #3
    Membre régulier
    Homme Profil pro
    Commercial
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Commercial

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Par défaut
    Je veux copier le contenue de wb dans wb1 en faite, je vais essayer d'enlever le nothing mais je ne sais pas vraiment comment definir mes cahiers enfaite

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par michaudserlabo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.ScreenUpdating = False
    Mettre ce type d'instruction en phase de développement est une très mauvaise idée.
    C'est l'idéal pour ne pas comprendre pourquoi la macro ne fait pas ce qu'on veut.

  5. #5
    Membre régulier
    Homme Profil pro
    Commercial
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Commercial

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Par défaut
    J'ai enlevé

    "set wb = nothing"

    j'ai aussi changé en true le false, mais l'erreur persiste encore sur la dernière ligne c'est a dire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Sheets(1).Range("A1 : U69") = Workbooks(wb1).Sheets(1).Range("A1 : U69")
    erreur incompatibilité de type

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Il n'y a pas d'espace de part et d'autre du : d'une référence de Range.
    Accessoirement, ton ActiveWorkbook est inutile.

  7. #7
    Membre régulier
    Homme Profil pro
    Commercial
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Commercial

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Par défaut
    Je n'ai aucune base en vba, du coup je ne vois pas bien par quoi dois je remplacer activeworkbook ?
    Les espaces se sont mit seul dans vba et la ligne ne fonctionne pas

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par michaudserlabo Voir le message
    Je n'ai aucune base en vba, du coup je ne vois pas bien par quoi dois je remplacer activeworkbook ?
    Par rien.
    Il est implicite donc le rajouter ne sert à rien. Tu l'enlèves, tout simplement.

    Les espaces se sont mit seul dans vba et la ligne ne fonctionne pas
    Des espaces qui se rajoutent entre deux guillemets ??? C'est la première fois que je vois ça.
    Il n'y aurait pas un guillemet en trop (ou en manque) dans ton code ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] copier coller d'une valeur
    Par mic56 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/06/2004, 11h43
  2. [Swing]copier coller... dans le menu.
    Par parksto dans le forum Composants
    Réponses: 3
    Dernier message: 10/05/2004, 22h56
  3. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 17h32
  4. Copier Coller une ligne d'une table avec modif ?
    Par nolan76 dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/03/2004, 16h34
  5. [Débutant] Conserver la couleur lors d'un copier coller
    Par ADIDASman dans le forum JBuilder
    Réponses: 2
    Dernier message: 21/05/2003, 18h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo