Ajout nouvelle feuille par maccro + Détails

damien59800

XLDnaute Nouveau
Bonjour,

Je voudrais créer un bouton permettant de :
- copier une feuiller et classer la copie en dernier (ça j'y arrive)
- ajouter une ligne sur un tableau en feuille 1 qui reprend :
-plusieurs données dans la feuille créée (ça je n'y arrive pas)
-le nom de la feuille créée (ça je n'y arrive pas)
dans le code il est marqué le nom de la feuille4 au lieu de la dernière feuille. Je ne sais pas comment faire.

Pouvez-vous m'aider svp ?

Merci
 

Pièces jointes

  • essai ajout feuille et données.xlsm
    45.4 KB · Affichages: 31

Efgé

XLDnaute Barbatruc
Re : Ajout nouvelle feuille par maccro + Détails

Bonjour damien59800

Essai comme ceci:
VB:
Sub ajouterundevis_2()
Dim Nom As String
'Blocage écran
Application.ScreenUpdating = False
Sheets("Devis général 1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
'Récupération du nom de la dernière feuille
Nom = Sheets(ThisWorkbook.Sheets.Count).Name
With Sheets("Synthèse devis")
    .Rows("6:6").Insert Shift:=xlDown
    .Range("A6").FormulaR1C1 = "='" & Nom & "'!R[-5]C[7]"
    .Range("B6").FormulaR1C1 = "='" & Nom & "'!R[7]C[1]"
    .Range("C6").FormulaR1C1 = "='" & Nom & "'!R[15]C[1]"
    .Range("D6").FormulaR1C1 = "='" & Nom & "'!R[21]C[-2]"
    .Range("E6").FormulaR1C1 = "='" & Nom & "'!R[32]C[3]"
    .Range("A7:G7").Copy
    .Range("A6:G6").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    .Columns("A:A").EntireColumn.AutoFit
    .Activate
    .Range("$A$1").Select
End With
Application.CutCopyMode = False
End Sub
Cordialement
 

Dull

XLDnaute Barbatruc
Re : Ajout nouvelle feuille par maccro + Détails

Salut damien59800, le Forum

Peut-être comme cela si j'ai bien compris
Sub ajouterundevis()
'
' ajouterundevis Macro
'
Sheets("Devis général 1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets("Synthèse devis").Select
Rows("6:6").Insert Shift:=xlDown
Range("A6").FormulaR1C1 = "='" & Sheets(Sheets.Count).Name & "'!R[-5]C[7]"
Range("B6").FormulaR1C1 = "='" & Sheets(Sheets.Count).Name & "'!R[7]C[1]"
Range("C6").FormulaR1C1 = "='" & Sheets(Sheets.Count).Name & "'!R[15]C[1]"
Range("D6").FormulaR1C1 = "='" & Sheets(Sheets.Count).Name & "'!R[21]C[-2]"
Range("E6").FormulaR1C1 = "='" & Sheets(Sheets.Count).Name & "'!R[32]C[3]"
Range("A7:G7").Copy
Range("A6:G6").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Columns("A:A").EntireColumn.AutoFit

End Sub

A noter que le Select sont superflus dans la plupart des cas
EDITION: Arff... Salut FG:) à la bourre moi
Bonne Journée
 
Dernière édition:

damien59800

XLDnaute Nouveau
Re : Ajout nouvelle feuille par maccro + Détails

Merci beaucoup pour vos réponses !! :)
Je me demandais ...
Est ce possible d'avoir le tableau bilan sur une feuille excel différente des feuilles de devis ? ( si j'ai 100 devis à faire j'ai peur que ça devienne casse tête pour chercher un devis dans tous les onglets... )
 

Dull

XLDnaute Barbatruc
Re : Ajout nouvelle feuille par maccro + Détails

Re damien59800, le Fil

je te propose ce code qui en double cliquant sur le n° de devis en ColA te transporte sur la feuille correspondante.
Code:
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A1:A1000")) Is Nothing Then
Cancel = True
Sheets(CStr(Target)).Activate
End If
End Sub

Code à placer dans le Module de la feuille Synthèse devis

Bonne Journée
 

Efgé

XLDnaute Barbatruc
Re : Ajout nouvelle feuille par maccro + Détails

Re
Salut Dull :)

Ou en créant un nouveau classeur par facture:

VB:
Sub ajouterundevis_3()
Dim Sh As Worksheet
'Blocage écran
Application.ScreenUpdating = False
Sheets("Devis général 1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
'Récupération du nom de la dernière feuille
Set Sh = Sheets(ThisWorkbook.Sheets.Count)
With Sheets("Synthèse devis")
    .Rows("6:6").Insert Shift:=xlDown
    .Range("A6").Value = Sh.Range("$H$1").Value
    .Range("B6").Value = Sh.Range("$C$13").Value
    .Range("C6").Value = Sh.Range("$D$21").Value
    .Range("D6").Value = Sh.Range("$B$27").Value
    .Range("E6").Value = Sh.Range("$H$38").Value
    .Range("A7:G7").Copy
    .Range("A6:G6").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    .Columns("A:A").EntireColumn.AutoFit
    .Activate
    .Range("$A$1").Select
End With
'Création d'un classeur par extraction de l'onglet ajouté
Sh.Move
Application.CutCopyMode = False
End Sub
Cordialement
 

damien59800

XLDnaute Nouveau
Re : Ajout nouvelle feuille par maccro + Détails

J'ai un nouveau problème...

1 - Quand j'appuie sur le bouton, je veux que le textbox 1 soit le nom de la feuille créée. J'y arrive mais quand j'écris deux noms de feuille se ressemblant j'ai une fenêtre d'erreur... :/
Par exemple, j'appelle la première feuille janvier et de ce fait je ne peux appeler la deuxième feuille janvier2

Puis-je contourner ce problème ??
 

Pièces jointes

  • essai ajout feuille et données 4.xlsm
    70.3 KB · Affichages: 26
  • essai ajout feuille et données 4.xlsm
    70.3 KB · Affichages: 28
  • essai ajout feuille et données 4.xlsm
    70.3 KB · Affichages: 28

Discussions similaires

Réponses
56
Affichages
1 K
Réponses
0
Affichages
220
Réponses
2
Affichages
152

Statistiques des forums

Discussions
312 115
Messages
2 085 455
Membres
102 891
dernier inscrit
cocowild