VBA copier valeur sans formule

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

MikaTI

XLDnaute Junior
Bonjour à tous,

Je reviens pour de nouvelles péripéties...

J'utilise un code pour compiler des données de X feuilles, vers une feuille " RECAP"
En fait je n'arrive pas a adapter mon code pour faire en sorte que ça ne copie que les cellules qui ont une valeur et non celles qui ont une formule.

En effet, j'ai des cellules qui ont des formules mais n'affiche rien suivant certaines conditions...

Voici le code que j'utilise 🙂

merci bien pour vos lumières 🙂
Code:
Sub compilation_donnees()
Dim LastLig As Long, NewLig As Long
Dim Ws As Worksheet
 
Application.ScreenUpdating = False
With Worksheets("Feuil1")
    LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
    If LastLig > 1 Then .Rows(2 & ":" & LastLig).Clear
    NewLig = 2
    For Each Ws In ThisWorkbook.Worksheets
        If InStr("ANNEXE| Feuil1| PISTES A DVP| SYNTHESE|", Ws.Name & "|") = 0 Then    ' entre "" mettre le nom de toutes les feuilles à exclure séparés d'un | et à l'agout d'un nouvel onglet ajouter le nom
            LastLig = Ws.Cells(Ws.Rows.Count, 1).End(xlUp).Row
            Ws.Rows("1:" & LastLig).Copy .Range("A" & NewLig)
            NewLig = NewLig + LastLig + 1

    With .Cells
        .FormatConditions.Delete
        .Columns("AA:AZ").Clear
    End With
        
        End If
    Next Ws
End With
End Sub
 
Re : VBA copier valeur sans formule

Bonsoir MikaTI,

Essaie comme ceci:

Code:
Sub compilation_donnees()
Dim LastLig As Long, NewLig As Long
Dim Ws As Worksheet
 
Application.ScreenUpdating = False
With Worksheets("Feuil1")
    LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
    If LastLig > 1 Then .Rows(2 & ":" & LastLig).Clear
    NewLig = 2
    For Each Ws In ThisWorkbook.Worksheets
        If InStr("ANNEXE| Feuil1| PISTES A DVP| SYNTHESE|", Ws.Name  & "|") = 0 Then    ' entre "" mettre le nom de toutes les feuilles à  exclure séparés d'un | et à l'agout d'un nouvel onglet ajouter le nom
            LastLig = Ws.Cells(Ws.Rows.Count, 1).End(xlUp).Row
            Ws.Rows("1:" & LastLig).Copy
           .Range("A" & NewLig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False
            NewLig = NewLig + LastLig + 1
    With .Cells
        .FormatConditions.Delete
        .Columns("AA:AZ").Clear
    End With
        End If
    Next Ws
End With
End Sub
A +

Cordialement.

Oups, après relecture, j'ai répondu à côté de la question.
 
Dernière édition:
Re : VBA copier valeur sans formule

RE:

Essaie plutôt comme ceci:

Code:
Sub compilation_donnees()
Dim LastLig As Long, NewLig As Long
Dim Ws As Worksheet
 
Application.ScreenUpdating = False
With Worksheets("Feuil1")
    LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
    If LastLig > 1 Then .Rows(2 & ":" & LastLig).Clear
    NewLig = 2
    For Each Ws In ThisWorkbook.Worksheets
        If InStr("ANNEXE| Feuil1| PISTES A DVP| SYNTHESE|", Ws.Name  & "|") = 0 Then    ' entre "" mettre le nom de toutes les feuilles à  exclure séparés d'un | et à l'agout d'un nouvel onglet ajouter le nom
            LastLig = Ws.Cells(Ws.Rows.Count, 1).End(xlUp).Row
            If Ws.Rows("1:" & LastLig).HasFormula = False Then Ws.Rows("1:" & LastLig).Copy .Range("A" & NewLig)
            NewLig = NewLig + LastLig + 1
    With .Cells
        .FormatConditions.Delete
        .Columns("AA:AZ").Clear
    End With
        End If
    Next Ws
End With
End Sub
Cordialement.
 
- 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
10
Affichages
281
Réponses
5
Affichages
233
Réponses
5
Affichages
241
Réponses
4
Affichages
179
Retour