Bonjour, petit problème rapide sur la fonction collé spéciale sur macros

Bonjour a tous et toutes ce qui prendront le temps de lire.

Je suis nouveaux en VBA (en fait je le comprend un peut donc j’arrive a modifier des script pour les utilisé mais seulement des simples)

J’ai trouvé un script qui peut résoudre mon problème (que j’ai modifier a ma sauce donc surtout ne juger pas l’auteur le script était bcp plus complexe ) mais je bloque juste sur une partie qui est le collé spécial des valeur uniquement et j’ai beau lire tous les forums et essayé différente chose, j’y arrive pas et pourtant je suis sure que c’est très simple…

Le code est :

Dim rep, ln, lgn, fAr

Sub Archiver()

rep = ""

rep = MsgBox("Vous allez archiver les données du mois qui " _

& "seront alors effacées du suivi" & Chr(13) _

& "Voulez-vous continuer ?", 20)

If rep = 7 Then

End

End If

Set fAr = Sheets("Archive")

For ln = 5 To Application.Max(6, Range("B" & Rows.Count).End(xlUp).Row)

If Range("A" & ln) <> "" Then

lgn = fAr.Range("A" & Rows.Count).End(xlUp)(2).Row

Range("A" & ln & ":w" & ln).Copy fAr.Cells(lgn, "a")

End If

Next ln

Range("A5:W" & ln).ClearContents

MsgBox "Les données ont été archivées avec succès."

End Sub

Merci par avance, je sais que je dois continuer a apprendre VBA mais a 51 ans c’est plus comme avant et si quelqu'un pouvait m'indiqué comment bien inséré le code car la c’est un copier collé dans le texte svp

Bonsoir Nico40, le forum,

collé spécial des valeur uniquement

Peut être ainsi:

Range("A" & ln & ":w" & ln).Copy 
fAr.Cells(lgn, "a").PasteSpecial Paste:=xlPasteValues

La prochaine fois, place ton code entre les balises </> , ce sera plus lisible,

https://forum.excel-pratique.com/viewtopic.php?p=598210#p598210

Cordialement,

super merci beaucoup, j'ai planché dessus depuis une semaine et en 30 minutes grâce a toi j'ai ma réponse. merci encore.

la je demande juste un renseignement de plus si se n'est pas abusé, tu crois que c'est possible de copier les données mais en laissant les formule? c'est pas un problème si non car j'ai un deuxième macro qui remet les formules mais bon juste pour améliorer le tableur. (je suis nouveaux dans les forums donc ayez patience avec moi svp, j’apprends )

Re,

Merci pour ton retour,

Pas sur de comprendre.... ....

Pour copier/coller les formules :

Range("A" & ln & ":w" & ln).Copy 
fAr.Cells(lgn, "a").PasteSpecial xlPasteFormulas

Cordialement,

Super forum, trop rapide et merci a toi xorsankukai.

Ok, pour l'instant je copy une range de cellules, et les colle mais ca retire les formules que j'ai sur les cellules original et donc après je fais tourner une deuxième macro pour copier et coller les formules d'une autre sheet et donc je veux juste savoir si dans ma macro je peut prendre les valeurs des cellule de ma première page mais tout en laissant les formule donc ça m'évite la deuxième macro. j'espère être assez clair car c'est dans ma tête et y'a un sacré bordel a l'intérieur

Re,

Le fait de copier les cellules ne suppriment pas les formules.

Ce serait plutôt dû au fait que tu effaces ces cellules, non ?

Range("A5:W" & ln).ClearContents

Essaie de neutraliser cette ligne en plaçant un ' devant pour voir ce qu'il en est.

Cordialement,

je voudrais prendre les données de feuille a (qui contient pour certaine des formules) les coller dans une autre feuille (fait grâce a toi) mis tout en laissant les formule sur la première feuille. pour l'instant ca "coupe" et colle, et si je met la ' devant

Range("A5:W" & ln).ClearContents

ca laisse les anciennes donnée et je veux juste une fiche vierge avec juste les formules.

Bonjour Nico40,

En fait tu fais bien un copier/coller de tes données, c'est le fait d'effacer ces données qui suppriment tes formules.

Essaies ceci: dans Range("A5:W" & Ln) on efface uniquement les cellules qui ne contiennent pas de formule....

Sub Archiver()
 Dim c As Range

 Application.ScreenUpdating = False

rep = ""
rep = MsgBox("Vous allez archiver les données du mois qui " _
& "seront alors effacées du suivi" & Chr(13) _
& "Voulez-vous continuer ?", 20)

If rep = 7 Then
 End
End If

Set fAr = Sheets("Archive")
 For Ln = 5 To Application.Max(6, Range("B" & Rows.Count).End(xlUp).Row)
  If Range("A" & Ln) <> "" Then
     lgn = fAr.Range("A" & Rows.Count).End(xlUp)(2).Row

     Range("A" & Ln & ":w" & Ln).Copy
     fAr.Cells(lgn, "a").PasteSpecial Paste:=xlPasteValues
  End If
 Next Ln

     For Each c In Range("A5:W" & Ln)
      If Not c.HasFormula = True Then c.ClearContents
     Next c

MsgBox "Les données ont été archivées avec succès."

Application.ScreenUpdating = True
End Sub

Cordialement,

Merci beaucoup pour t'on aide xorsankukai et peut etre a un de ces 4.

Rechercher des sujets similaires à "petit probleme rapide fonction colle speciale macros"