vba copier collerun tableen utilisant les formats et couleurs

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

  • Analys Rumilly .xlsx
    26.4 KB · Affichages: 32

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Réponses
3
Affichages
564

Statistiques des forums

Discussions
312 027
Messages
2 084 763
Membres
102 657
dernier inscrit
Ferdy