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 :

Solution plutot introuvable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Par défaut Solution plutot introuvable
    Bonjour a tous.

    J'ai un problème de taille (pour mon niveau Excel ) J'ai un classeur contenant 2 feuilles, une feuille qui me sert de formulaire pour entrer des données dans l'autre feuille. Je maitrise bien le copiage des données de cellule d'une page à l'autre ainsi que le copiage des choix de mes liste déroulante...mais voici mon problème: j'ai créé un bouton qui me permet de faire une copie conforme de la feuille 2 mais en vidant les valeurs pour permettre de nouvelle entrées de données, ca fonctionne mais quand j'entre des données sur ma feuille 1, il la met sur la feuille 3 et change celle de la feuille 2 également et c'est exactement ce que je ne veux pas ! Mais c'est normal car tout ce copie donc les liaison de cellules aussi...ce que je voudrais, c'est une macro ou un code me permettant de fermer ou verrouiller la feuille 2 puis ajouter les données sur la feuille 3 plutôt , puis si j'en créé une quatrième la 3 se verrouille etc...

    J'ai cru voir sur un forum anglais qu'on pouvais, par vba, supprimer les formules ou lien de cellule (=c17) sans supprimer le résultat de cette formule ou liaison...mais c'était au dessus de mon niveau de compétence !!

    Merci d'avance et j’espère avoir été clair dans mon explication

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonsoir,

    Une solution qui marche en VBA et sous Excel, c'est de faire un copier / coller par valeur.

    Le coller par valeur, supprime la formule dans la plage de destination, en gardant la valeur affichée.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WorkSheets("Feuil1").Range("A1:B2").Copy  
    WorkSheets("Feuil2").Range("A1:B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Par défaut
    Merci pour ce code c génial...mais un probleme subsiste...comment dire a Excel que lorseque je click sur le bouton "Ajouter une Commande" , en plus de copier la feuille2 il doit maintenant entrer les données sur la nouvelle feuille ??

    je ne suis toujours pas pour changer "feuil2" pour "feuil3" et ainsi de suite, je n'arrive pas a trouver.

    Et si dans une cellule de la feuil2 j'ai une référence a un index de liste déroulante (=INDEX(PROGRAMME!$R$8:$R$18,PROGRAMME!$R$19)) je fait comment pour appliquer ca a ton bout de code ??

    Merci de ton aide
    a +

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonjour,

    Je n'ai pas compris les problèmes / questions précédentes.

    lorsque je click sur le bouton "Ajouter une Commande" , en plus de copier la feuille2 il doit maintenant entrer les données sur la nouvelle feuille ??
    Quelles nouvelles données ?
    je ne suis toujours pas pour changer "feuil2" pour "feuil3" et ainsi de suite, je n'arrive pas a trouver


    D'après ce qui était présenté au premier message, je ferais :
    - on garde toujours la même feuille pour la saisie & feuille active (feuille 1 & 2).
    - lorsqu'on veut créer une copie "sans référence" de la feuille active (feuille 2) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        'copie la feuille 2 à sauvegarder en 3ème position du classeur
        Sheets("Feuil2").Copy After:=Worksheets(2) 
     
       ' copie les données et formules' de la feuille à sauvegarder.
        ' colle les données par valeur sur la même plage.
        with Worksheets(3).Range("A1:B2")
              .Copy  
              .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        end with

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Par défaut
    Bon je vais essayer d’être plus clair...

    J'ai 2 feuille dans mon classeur, la première sert de formulaire, la deuxième sert de template pour mon bon de commande. Lorsque j'ouvre mon classeur, et que je veux ajouter une nouvelle commande, je clique sur mon bouton "Ajouter une commande" dans ma feuille1 et cela copie la feuille2 comme quand on fait un coller spécial...ensuite quand j'entre mes données de commande dans mon formulaire (la feuille1) les données se transfèrent sur la feuille2 ainsi que sur la nouvelle feuille...ma question: comment copier mes cellules de ma feuille1 sur et seulement sur la nouvelle feuille créé, car si je clique trois fois sur mon bouton, je me ramasse avec trois nouvelle feuilles dont les données seront modifiées toutes pareilles...comment empêcher ca ??

    En Clair..quand j'ai fini d'entrer mes données dans la feuille2 via la feuille1, comment faire une copie intégrale de cette feuille mais sans les formules ?

    ce que tu m'as proposé ne fonctionne qu'une seule fois car le paste spacial se fait sur la meme feuille donc quand j'en ajoute une autre, mes formules nexistent plus, alors qu'elles doivent rester sur la feuille2 pour que je puisse en refaire une copie etc..

    Bon, j'ai été sur un autre forum et un type m'as donner son bout de code qui selon lui fonctionnait tres bien chez lui....je l'ai adapter pour mon programme mais il me met une erreur 1004 sur une des ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub NouvComm()
    
        Feuil1.Copy Before:=Sheets(3)
        Feuil1.Range("C8:m9").Copy
        ActiveSheet.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
        ActiveSheet.Name = Range("C2").Text
        Sheets("PROGRAMME").Select
        
    End Sub
    Si j'enlève ActiveSheet devant le .pastespacial ca fonctionne mais ca colle pas sur la bonne feuille, ca colle sur la feuille 1...il doit y avoir un foutu moyen de copier sur la nouvelle feuille...alors que ActiveSheet.Name fonctionne bien lui...je pige pas bordel !!!

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonjour,

    Ci-joint un exemple d'application, a essayer après avoir fermé et redémarrer Excel.

    - feuille 1 : saisie
    - feuille 2 : modèle avec lien sur feuille 1

    <bouton rouge> : copie modèle dans une autre feuille, sans garder les liens sur feuille1 pour la plage "A116"


    Le code actif une adaptation de celui poster hier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Call Worksheets("modele").Copy(After:=Worksheets("modele")) 
     
      With Worksheets(3).Range("A1:D16")
            .Copy
            .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End With
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [SP-2013] solution WSP introuvable
    Par info009 dans le forum SharePoint
    Réponses: 6
    Dernier message: 31/08/2013, 13h13
  2. Réponses: 3
    Dernier message: 04/12/2009, 14h12
  3. Les Cookies 4° ! : LA SOLUTION
    Par Ph. B. dans le forum XMLRAD
    Réponses: 2
    Dernier message: 31/01/2003, 16h46
  4. C, C++ et assembleur, plutot amis ?
    Par ShinMei dans le forum C
    Réponses: 2
    Dernier message: 18/01/2003, 00h12
  5. [] Datareport.orientation introuvable même avec sp5
    Par khany dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/01/2003, 10h06

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