vba copier collerun tableen utilisant les formats et couleurs

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 !

serge.savi

XLDnaute Nouveau
Bonjour

J ai besoin de votre aide , j ai joint un fichier comprenant un tableau nommé Rumilly , identifié par une couleur et un format j ai une dizaine d onglets contenant un tableau ,correspondant a une ville


Mon besoin est :
De pouvoir garder les formules des colonnes A-B-G-H-K-L-M-P-Q-R-U-V-W-Z-AA-AB-AJ-AK-AL-AO-AP-AQ-AT-AU-AV-AY-AZ-BA-BD-BE-BF
Effacer le reste des colonnes
De pouvoir recopier ce tableau a la suite....sur cet exemple ligne 35
mise a jour , en ajoutant 1 jour dans la colonne c...sur cet exemple la date est affichée au 17-02-2015 , le resultat de la copie , la date =s affichera au 18-02-2015

D'avance un grand merci pour votre aide et votre disponibilite
 

Pièces jointes

Re : vba copier collerun tableen utilisant les formats et couleurs

Bonjour serge.savi, salut Paf,

Cette macro doit faire l'affaire :

Code:
Sub CopierColler()
Dim dercel As Range, n&
Rows("5:" & Rows.Count).Sort [C5], xlAscending, Header:=xlYes 'tri de sécurité
Set dercel = Range("C" & Rows.Count).End(xlUp)
If dercel.Row < 6 Then Exit Sub 'si tableau vide
n = Application.CountIf([C:C], dercel) 'nombre de lignes à copier
With Rows(dercel.Row + 1).Resize(n) 'plage du coller
  Rows(dercel.Row - n + 1).Resize(n).Copy .Cells 'copier-coller
  On Error Resume Next 'si aucune constante
  .SpecialCells(xlCellTypeConstants) = "" 'effacement
  .Columns(3) = dercel + 1 'incrémentation de la date
End With
End Sub
Dans votre liste de colonnes à ne pas effacer vous ne mentionnez pas AE-AF-AG.

Elles contiennent des formules, mais s'il faut les effacer dites-le...

A+
 
Re : vba copier collerun tableen utilisant les formats et couleurs

Re,

J'avais oublié :

j ai une dizaine d onglets contenant un tableau ,correspondant a une ville

Alors il suffit de faire une boucle :

Code:
Sub CopierColler()
Dim w As Worksheet, dercel As Range, n&
For Each w In Worksheets
  w.Rows("5:" & w.Rows.Count).Sort w.[C5], xlAscending, Header:=xlYes 'tri de sécurité
  Set dercel = w.Range("C" & w.Rows.Count).End(xlUp)
  If dercel.Row > 5 Then
    n = Application.CountIf(w.[C:C], dercel) 'nombre de lignes à copier
    With w.Rows(dercel.Row + 1).Resize(n) 'plage du coller
      w.Rows(dercel.Row - n + 1).Resize(n).Copy .Cells 'copier-coller
      On Error Resume Next 'si aucune constante
      .SpecialCells(xlCellTypeConstants) = "" 'effacement
      .Columns(3) = dercel + 1 'incrémentation de la date
      On Error GoTo 0
    End With
  End If
Next
End Sub
A+
 
- 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
1
Affichages
755
Compte Supprimé 979
C
Réponses
58
Affichages
6 K
Retour