Macro pour archiver les valeurs sauf lignes ayant un zéro....

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais, à nouveau, votre aide pour modifier cette macro, afin d'archiver les valeurs sans les lignes ayant la valeur 0 en colonne B.

Voir fichier joint.

Merci pour votre aide, si précieuse.
Bien amicalement,
Christian
 

Pièces jointes

  • ArchivageSansLesValeurs0.xlsm
    19.6 KB · Affichages: 30

Lolote83

XLDnaute Barbatruc
Re : Macro pour archiver les valeurs sauf lignes ayant un zéro....

Salut Christian0258,
Avec une macro de filtre élaboré comme dans le fichier joint
@+ Lolote83
 

Pièces jointes

  • Copie de Christian0258 - ArchivageSansLesValeurs0.xlsm
    22.1 KB · Affichages: 25

Efgé

XLDnaute Barbatruc
Re : Macro pour archiver les valeurs sauf lignes ayant un zéro....

Bonjour Christian0258
En attendant une proposition par filtre une version par tableau.
VB:
Sub Archivage_2()
Dim i&, J&, Rw&, Tdata As Variant
With Sheets("Formulaire")
    Tdata = .Range(.Cells(16, 2), .Cells(.Rows.Count, 2).End(3)(1, 8))
End With
For i = LBound(Tdata, 1) To UBound(Tdata, 1)
    If Tdata(i, 1) <> 0 Then
        Rw = Rw + 1
        For J = LBound(Tdata, 2) To UBound(Tdata, 2)
            Tdata(Rw, J) = Tdata(i, J)
        Next J
    End If
Next i
    
With Sheets("Base")
    .Cells(.Rows.Count, 2).End(3)(2).Resize(Rw, UBound(Tdata, 2)).FormulaLocal = Tdata
    .Activate
End With
End Sub
Cordialement
Edit Bonjour Lolote83
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Macro pour archiver les valeurs sauf lignes ayant un zéro....

Bonjour, Christian0258, Lolote83, Efgé :D, le Forum,

Une autre suggestion avec filtre automatique.

Code:
Option Explicit
Sub Valeurs_positives_archiver()
    Application.ScreenUpdating = False
    Range("e15").AutoFilter
    ActiveSheet.Range("b15:h35").AutoFilter Field:=4, Criteria1:="<>0", Operator:=xlAnd
    Range("b16:h35").SpecialCells(xlCellTypeVisible).Copy
    With Sheets("Base").Range("b" & Rows.Count).End(xlUp)(2): .PasteSpecial Paste:=xlPasteValues: _
            .Range("b2").CurrentRegion.Borders.Value = 1: End With
    Range("e15").AutoFilter
    Application.ScreenUpdating = True
End Sub

A bientôt :)
 

Christian0258

XLDnaute Accro
Re : Macro pour archiver les valeurs sauf lignes ayant un zéro....

Re, le forum, Lolote83, Efgé, DoubleZero,

Merci à vous, pour votre aide.

Lolote83, sauf erreur de ma part, mais les archivages ne se cumulent pas...
Efgé, l'archivage prend toute la feuille et pas uniquement la zone B16:H35... ?
DoubleZero, ça marche, mais j'ai oublié de préciser que les colonnes D et E (feuille Formulaire) sont masquées.

Encore merci.
A vous lire,
Christian
 

Christian0258

XLDnaute Accro
Re : Macro pour archiver les valeurs sauf lignes ayant un zéro....

Re, le forum, Efgé,

La fichier déposé, dans mon premier message est bon, il faut simplement considérer que lors de l'utilisation, les colonnes D et F sont masquées.

Mes excuses pour ce manque de précision au départ.

Bien à vous,
Christian
 

DoubleZero

XLDnaute Barbatruc
Re : Macro pour archiver les valeurs sauf lignes ayant un zéro....

Re-bonjour,

Comme ceci ?

Code:
Option Explicit
Sub Valeurs_positives_archiver_v2()
    Application.ScreenUpdating = False
    Columns("d:e").EntireColumn.Hidden = False
    Range("b15").AutoFilter
    ActiveSheet.Range("b15:h35").AutoFilter Field:=1, Criteria1:="<>0", Operator:=xlAnd
    Range("b16:h35").SpecialCells(xlCellTypeVisible).Copy
    With Sheets("Base").Range("b" & Rows.Count).End(xlUp)(2): .PasteSpecial Paste:=xlPasteValues: _
            .Range("b2").CurrentRegion.Borders.Value = 1: End With
    Range("b15").AutoFilter
    Columns("d:e").EntireColumn.Hidden = True
    Application.ScreenUpdating = True
End Sub

A bientôt :)
 

job75

XLDnaute Barbatruc
Re : Macro pour archiver les valeurs sauf lignes ayant un zéro....

Bonjour Christian, Lolote83, Efgé, chère DoubleZero,

Ceci est assez simple :

Code:
Sub ArchivageSansZéro()
Feuil1.Activate 'au cas où...
With Feuil2
  .Rows("5:" & .Rows.Count).Delete 'RAZ
  On Error Resume Next 'si aucun texte
  Range("B16:B" & Rows.Count).SpecialCells(xlCellTypeConstants, 2).EntireRow.Copy .[A5]
  .Range("H5:H" & .Rows.Count).Replace "=*", [B13]
  .Activate 'facultatif
End With
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : Macro pour archiver les valeurs sauf lignes ayant un zéro....

Re,

Si l'on veut faire des archivages les uns à la suite des autres :

Code:
Sub ArchivageSansZéro()
Feuil1.Activate 'au cas où...
With Feuil2
  On Error Resume Next 'si aucun texte
  Range("B16:B" & Rows.Count).SpecialCells(xlCellTypeConstants, 2).EntireRow _
    .Copy .Range("B" & .Rows.Count).End(xlUp)(2).EntireRow
  .Range("H5:H" & .Rows.Count).Replace "=*", [B13]
  .Activate 'facultatif
End With
End Sub
Avec le risque de faire 36 fois le même archivage :rolleyes:

A+
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Macro pour archiver les valeurs sauf lignes ayant un zéro....

Re

Bonjour job75 :)

Il y a quelque chose que je ne comprend pas....
Le code de job remplace les données au fur et a mesure (EntireRow.Copy .[A5]) alors qu'il est dis
... mais les archivages ne se cumulent pas...
Pour mon code la question:
... Efgé, l'archivage prend toute la feuille et pas uniquement la zone B16:H35... ?
montre à quel point les tests ont été effetués.....

Pas grave Christian a trouvé chaussure a son pied, c'est le principal....
Cordialement
 

Discussions similaires

Réponses
7
Affichages
287

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87