VBA : Résultat au lieu de formules
Résolu
amaury08
Messages postés
50
Statut
Membre
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
Bonjour,
j'utilise un script VBA qui me copie le résultat des cellules non-vides d'une colonne A vers une colonne B en partant du bas :
Sub copie()
Dim cellule As Range
Dim Ligne As String
For Each cellule In Worksheets("Feuil1").Range("A1:A200")
If Not IsEmpty(cellule) Then
If IsEmpty(Worksheets("Feuil1").Range("B65536").End(xlUp)) Then
Worksheets("Feuil1").Range("B65536").End(xlUp).Select
cellule.Copy Worksheets("Feuil1").Range("B65536").End(xlUp)
Else
Ligne = Worksheets("Feuil1").Range("B65536").End(xlUp).Row
Range("B" & Ligne + 1).Select
cellule.Copy Worksheets("Feuil1").Range("B" & Ligne + 1)
End If
End If
Next cellule
End Sub
le seul problème c'est que justement, les cellules à copier contiennent déjà des formules.
d'où ma question :
comment copier le résultat de(s) la(les) cellule(s) plutôt que les formules que celle-ci contiennent ?
j'utilise un script VBA qui me copie le résultat des cellules non-vides d'une colonne A vers une colonne B en partant du bas :
Sub copie()
Dim cellule As Range
Dim Ligne As String
For Each cellule In Worksheets("Feuil1").Range("A1:A200")
If Not IsEmpty(cellule) Then
If IsEmpty(Worksheets("Feuil1").Range("B65536").End(xlUp)) Then
Worksheets("Feuil1").Range("B65536").End(xlUp).Select
cellule.Copy Worksheets("Feuil1").Range("B65536").End(xlUp)
Else
Ligne = Worksheets("Feuil1").Range("B65536").End(xlUp).Row
Range("B" & Ligne + 1).Select
cellule.Copy Worksheets("Feuil1").Range("B" & Ligne + 1)
End If
End If
Next cellule
End Sub
le seul problème c'est que justement, les cellules à copier contiennent déjà des formules.
d'où ma question :
comment copier le résultat de(s) la(les) cellule(s) plutôt que les formules que celle-ci contiennent ?
A voir également:
- VBA : Résultat au lieu de formules
- Excel compter cellule couleur sans vba - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
2 réponses
Essaie :
Option Explicit
Sub copie()
Dim celOrg As Range
Dim celDst As Range
Set celDst = Columns("B").Find("*", , , , , xlPrevious)
If celDst Is Nothing Then Set celDst = Range("B1") Else Set celDst = celDst.Offset(1)
For Each celOrg In Worksheets("Feuil1").Range("A1:A200")
If Not IsEmpty(celOrg) Then
celDst.Value = celOrg.Value
Set celDst = celDst.Offset(1)
End If
Next celOrg
End Sub
merci patrice, mais comment éviter les espaces entre les résultats ?
sinon c'est le résultat que je cherchais
sinon c'est le résultat que je cherchais