Copie colle -> Destination

  • Initiateur de la discussion Initiateur de la discussion gopo
  • 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 !

gopo

XLDnaute Junior
Bonjour a tous !

Voilà j'ai un soucis avec mon code ( ci dessous ).
Il copie une celulle qui est en format : Personnalisé en 0,00\ % quand je la colle dans ma destination il ne copie pas le format il fait un peu n'importe quoi

ex : -> classeur source , celulle en format personalisé 0,00\ % = 40,23%
-> classeur de destination, collage -> 0,4023

donc je suis obligé de convertir en nombre, mettre en pourcentage, mais des que je relance mon programme ca ecrase et ca revien a un collage "raté"

Donc ma question est quel est le code a changé dans mon code pour pouvoir copié le format et la valeur de ma cellule source ( cf : collage special Format et valeur du nombre ) car la je copie ma cellule souhaité mais ca oublie le format, même quand je met en format pourcentage ma cellule de destination ( ca me met le petit "!" en jaune )

Code:
Dim Variable1 As String
Dim Variable2 As String
Dim Variable3 As String
Dim Variable4 As String
Dim Variable5 As String
Dim Variable6 As String
Dim Variable7 As String
Dim Variable8 As String

Dim i As Integer
Dim j As Integer
Dim h As Integer

        i = 9
        For i = 9 To 846 Step 27
          If Cells(i, 2) = "753220 - PARIS KELLER ACP" Then
                For j = 5 To 26 Step 1
                    
                       If Cells(i + 1, j) = "Janvier" Then
                               With ThisWorkbook.Sheets("Détail ACP")
                     
                                    Variable1 = .Cells(i + 8, j).Value
                                    Variable2 = .Cells(i + 12, j).Value
                                    Variable3 = .Cells(i + 11, j).Value
                                    Variable4 = .Cells(i + 3, j).Value
                                    Variable5 = .Cells(i + 14, j).Value
                                    Variable6 = .Cells(i + 15, j).Value
                                    Variable7 = .Cells(i + 5, j).Value
                                     Variable8 = .Cells(i + 6, j).Value
                                End With
                        Set Dest = Workbooks.Open(ActiveWorkbook.Path & "\TBM ACP.xls")
                         With Dest.Sheets("Paris Keller")
                              .Cells(9, 7).Value = Variable1
                              .Cells(21, 39).Value = Variable2
                              .Cells(30, 7).Value = Variable3
                              .Cells(40, 7).Value = Variable4
                              .Cells(42, 7).Value = Variable5
                              .Cells(43, 7).Value = Variable6
                              .Cells(45, 7).Value = Variable7
                              Cells(47, 7).Value = Variable8
                         End With
                 Exit For
          End If
        Next
      Exit For
    End If
Next
 
Re : Copie colle -> Destination

Bonjour Gopo

oui à priori normal, puisque tu passes par des variables, hors celles-ci stockent les valeur et non les formats. Regardes ci dessous, j'ai modifié le code, mais pas trop sur de des "exit for" placés dans les boucles. Mais sans plus de détails et sans le code complet, difficile de t'en dire plus. Donc à tester ...

Code:
Option Explicit
Sub test()
Dim i As Integer, j As Integer, h As Integer
Dim Dest As Workbook

Set Dest = Workbooks.Open(ActiveWorkbook.Path & "\TBM ACP.xls")
i = 9

For i = 9 To 846 Step 27
    If Cells(i, 2) = "753220 - PARIS KELLER ACP" Then
        For j = 5 To 26 Step 1
            If Cells(i + 1, j) = "Janvier" Then
                With ThisWorkbook.Sheets("Détail ACP")
                    .Cells(i + 8, j).Copy Dest.Sheets("Paris Keller").Cells(9, 7)
                    .Cells(i + 12, j).Copy Dest.Sheets("Paris Keller").Cells(21, 39)
                    .Cells(i + 11, j).Copy Dest.Sheets("Paris Keller").Cells(30, 7)
                    .Cells(i + 3, j).Copy Dest.Sheets("Paris Keller").Cells(40, 7)
                    .Cells(i + 14, j).Copy Dest.Sheets("Paris Keller").Cells(42, 7)
                    .Cells(i + 15, j).Copy Dest.Sheets("Paris Keller").Cells(43, 7)
                    .Cells(i + 5, j).Copy Dest.Sheets("Paris Keller").Cells(45, 7)
                    .Cells(i + 6, j).Copy Dest.Sheets("Paris Keller").Cells(47, 7)
                End With
                Exit For
            End If
        Next j
    End If
    Exit For
Next i
End Sub

bon après midi
@+
 
Re : Copie colle -> Destination

Bonjour pierrot,

Je teste ceci, j'edit des que c'est ok, merci à toi d'avoir répondu.

Bonne apres midi a toi aussi 😉

edit : j'ai testé, ca copie bien ce que je veux mais probleme .. ca me remplit la cellule de destination de noir, ca me mes des bordure rouges, et une police a 6 🙁 peux tu m'aidé sur ce coup la ?
 
Dernière édition:
Re : Copie colle -> Destination

Re,

si tu ne veux pas l'intégralité du format de la cellule, mais seulement le format nombre, essaye en réutilisant les variables mais par contre avec la propriété "text" de la cellule, comme suit :

Code:
Variable1 = .Cells(i + 8, j).Text

@+
 
Re : Copie colle -> Destination

Cool tout marche, une derniere question.

est il possible de faire ceci :

J'actionne mes maccro en cliquant dessus, je peux aussi utiliser des raccourcis, mon code VBA est liée a ma page excel ! alors est il possible de faire un programme qui n'est pas liée au tableau excel car j'utilise ce code pour l'année 2008, mais si je suis en 2009, je vais devoir recrée des macros les attribué a mon nouveau classeur 2009, y copié le code etc... c'est embêtant :/.

est il possible donc de crée un programme en VBA externe au feuille excel ?

( j'espere avoir été claire 😀 )
 
Re : Copie colle -> Destination

Re,

oui, tout à fait possible, soit tu enregistres tes macros dans un classeur dédié ou bien dans le classeur de macros personnelles. Mais il faudra sans doute "variabliser" les données qui ne seront pas identiques, comme les noms de classeur et de feuille.... Et y faire référence systèmatiquement.

@+
 
- 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

Réponses
4
Affichages
240
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
201
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
590
Réponses
2
Affichages
181
Réponses
3
Affichages
687
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
670
Réponses
2
Affichages
538
Retour