Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copie d'onglet mais garder formule dans colonne

  • Initiateur de la discussion Initiateur de la discussion VINCEGR
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VINCEGR

XLDnaute Occasionnel
Bonjour le Forum,
voici mon souci 😕
je copie mon devis créer sous un nouvel onglet mais je souhaiterais que:
1) la colonne (F) garde ses formules de calcul
2) la copie conserve le logo du haut de page de la feuille du devis
3) la réf de la couleur de l'onglet puisse être demandé lors de la création de la copie
Merci pour votre aide
VinceGR🙂
 

Pièces jointes

Re : copie d'onglet mais garder formule dans colonne

bonjour VINCEGR,

Voici un essai (si j'ai bien tout compris). La macro à lancer est "CopierOnglet" :
Code:
Private Declare Function CHOOSECOLOR Lib "comdlg32.dll" Alias _
"ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long
Private Type CHOOSECOLOR
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    rgbResult As Long
    lpCustColors As String
    Flags As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
End Type

'affiche la palette de couleur et renvoie le "code couleur"
Public Function GetColor() As Long
    Dim cc As CHOOSECOLOR
    Dim Custcolor(16) As Long
    Dim lReturn As Long
    cc.lStructSize = Len(cc)
    cc.lpCustColors = StrConv(CustomColors, vbUnicode)
    cc.Flags = 0
    If CHOOSECOLOR(cc) <> 0 Then
        GetColor = cc.rgbResult
        CustomColors = StrConv(cc.lpCustColors, vbFromUnicode)
    Else
        GetColor = -1
    End If
End Function


Public Sub CopierOnglet()
Dim nomOnglet As String
Dim couleurOnglet As Long
Dim nouvelOnglet As Worksheet
    
    'récupérer le nom du nouvel onglet
    nomOnglet = Application.InputBox("Nom du nouvel onglet :", , , , , , , 2)
    
    'récupérer la couleur du nouvel onglet
    couleurOnglet = GetColor()
    
    'créer une copie (en dernière position) de la feuille "B2008 new 1"
    With ThisWorkbook
        .Sheets("B2008 new 1").Copy after:=.Sheets(.Sheets.Count)
        Set nouvelOnglet = .Sheets(.Sheets.Count)
    End With
    
    With nouvelOnglet
        'définir le nom du nouvel onglet
        .Name = nomOnglet
        
        'définir la couleur du nouvel onglet
        .Tab.Color = couleurOnglet
    End With
End Sub

a+
 
Re : copie d'onglet mais garder formule dans colonne

boujour mromain,
Est-il possible de modifier cette partie du code pour obtenir une copie de la feuille avec les formules seulement de la colonne F d'origine.

'créer une copie (en dernière position) de la feuille "B2008 new 1"
With ThisWorkbook
.Sheets("B2008 new 1").Copy after:=.Sheets(.Sheets.Count)
Set nouvelOnglet = .Sheets(.Sheets.Count)
End With

@+
VinceGR
 
Dernière édition:
Re : copie d'onglet mais garder formule dans colonne

re le forum,
est-il possible de modifier le code ci-dessous pour obtenir une création du nouvel onglet avec seulement la copie de la formule de la colonne F😕
Merci d'avance
VinceGR
 
Re : copie d'onglet mais garder formule dans colonne

re le forum,
est-il possible de modifier le code ci-dessous pour obtenir une création du nouvel onglet avec seulement la copie de la formule de la colonne F😕
Merci d'avance
VinceGR


bonjour VINCEGR,

voici le code modifié :
Code:
Public Sub CopierOnglet()
Dim nomOnglet As String
Dim couleurOnglet As Long
Dim nouvelOnglet As Worksheet
    
    'récupérer le nom du nouvel onglet
    nomOnglet = Application.InputBox("Nom du nouvel onglet :", , , , , , , 2)
    
    'récupérer la couleur du nouvel onglet
    couleurOnglet = GetColor()
    
    'créer une copie (en dernière position) de la feuille "B2008 new 1"
    With ThisWorkbook
        .Sheets("B2008 new 1").Copy after:=.Sheets(.Sheets.Count)
        Set nouvelOnglet = .Sheets(.Sheets.Count)
    End With
    
    With nouvelOnglet
        'définir le nom du nouvel onglet
        .Name = nomOnglet
        
[COLOR=Red][B]        'enlever les formules sur la zone "A3:F12"
        .Range("A3:F12").Value = .Range("A3:F12").Value
[/B][/COLOR]        
        'définir la couleur du nouvel onglet
        .Tab.Color = couleurOnglet
    End With
End Sub

a+
 
Re : copie d'onglet mais garder formule dans colonne

Bonjour,

J'arrive après la bataille mais...
Ne vaudrait-il pas mieux créer une feuille vierge du devis avec logo, formule en place mais sans données, puis copier ce canevas à chaque nouveau devis?

Une sorte de feuille modèle avant de compléter les données?
 
Re : copie d'onglet mais garder formule dans colonne

bonsoir le forum,

Code:
Ne vaudrait-il pas mieux créer une feuille vierge du devis avec logo,  formule en place mais sans données, puis copier ce canevas à chaque  nouveau devis?

Une sorte de feuille modèle avant de compléter les données?

d'autant qu'archiver les nouvelles feuilles avec le logo est inutile et très gourmand en terme d'octet, ce qui pourrait à terme poser des PBs dans le fonctionnement du classeur.

@plus jacques
 
Re : copie d'onglet mais garder formule dans colonne

bonjour macpoy,🙂
oui je pense que l'idée est bonne. Vous est-il possible de proposer un exemple sur fichier ?😕
Merci d'avance
@+
VinceGR
 
Re : copie d'onglet mais garder formule dans colonne

Bonjour,

En fait, il faudrait un devis "standard" et tu es la personne la plus à même de savoir quel format tu utilises aujourd'hui.

Tu vires le nom de la personne concernée par le devis, la date, le détail des lignes, le montant etc... Puis tu enregistres ton devis vierge en faisant enregistrer sous et tu prends "Modèle (.xlt)".

Tu viens ainsi de créer un modèle de feuille que tu pourras réutiliser à chaque nouveau devis avec juste qq cases (nom, date, lignes, montant) à remplir à la main.
 
Re : copie d'onglet mais garder formule dans colonne

bonjour le forum et mromain,

Public Sub CopierOnglet()
Dim nomOnglet As String
Dim couleurOnglet As Long
Dim nouvelOnglet As Worksheet

'récupérer le nom du nouvel onglet
nomOnglet = Application.InputBox("Nom du nouvel onglet :", , , , , , , 2)

'récupérer la couleur du nouvel onglet
couleurOnglet = GetColor()

'créer une copie (en dernière position) de la feuille "B2008 new 1"
With ThisWorkbook
.Sheets("B2008 new 1").Copy after:=.Sheets(.Sheets.Count)
Set nouvelOnglet = .Sheets(.Sheets.Count)
End With

With nouvelOnglet
'définir le nom du nouvel onglet
.Name = nomOnglet

'enlever les formules sur la zone "A3:F12"
.Range("A3:F12").Value = .Range("A3:F12").Value

'définir la couleur du nouvel onglet
.Tab.Color = couleurOnglet
End With
End Sub


je reviens vers vous pour savoir si il était possible de rajouter dans la macro ci-dessus une fonction qui ne conserve dans la feuille de calcul seulement les lignes qui sont supérieur à 0 de la colonne "D"
Merci d'avance
VinceGr
 
Dernière édition:
Re : copie d'onglet mais garder formule dans colonne

Bonjour le fil,

Le problème VINCEGR c'est qu'on ne sait pas trop ce qu'il faut exactement supprimer.

En plus l'organisation du tableau n'est pas parfaitement répétitive...

Voyez tout de même le fichier joint.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…