résultat d'un calcul dans une plage de cellule

yaka

XLDnaute Occasionnel
version excel : 2000

Bonjour

En sortant d'un onglet je veux dans une plage de cellule située en colonne A de cet onglet avoir le résultat (value!) de la concaténation des colonnes B & C & D pour les lignes concernées.

J'ai donc fait (naïvement)

Private Sub Worksheet_Deactivate()
Range("A2:A1000").Value = Range("b2:b1000").Value & Range("c2:c1000").Value & Range("d2:d1000").Value
End Sub

j'ai en réponse une erreur d'execution de type 13 'incompatibilité de type'...

merci pour votre aide
 

Luki

XLDnaute Accro
Re : résultat d'un calcul dans une plage de cellule

re,

plus fiable avec une boucle :

Code:
Dim i As Long
    For i = 2 To 1000
        Range("A" & i) = Range("B" & i).Text & Range("C" & i).Text & Range("D" & i).Text
    Next i
End Sub

A te lire
 

yaka

XLDnaute Occasionnel
Re : résultat d'un calcul dans une plage de cellule

A priori avec la boucle ça va marcher (je l'ai déjà fait sur d'autre feuille) ... mais... dans mon cas il n'y a pas en fait 1000 lignes à considérer mais 20000 .... ça prend un "chouya" plus de temps... alors j'imaginai qu'il y avait plus rapide...
 

Luki

XLDnaute Accro
Re : résultat d'un calcul dans une plage de cellule

Re,

En utilisant une formule et recopie des valeurs

Code:
Sub test2()
    With Range("A2:A20000")
        .FormulaR1C1 = "=RC[1]&RC[2]&RC[3]"
        .Copy
    End With
    Range("A2").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
End Sub
Plus rapide que la boucle, chez moi le chouya tournait vers les 5 secondes..

Dis nous.. :)
 

Discussions similaires

Statistiques des forums

Discussions
312 416
Messages
2 088 247
Membres
103 784
dernier inscrit
Métro-logue