XL 2016 VBA : copier coller si cellules non vides

Bnj

XLDnaute Occasionnel
Bonjour,

Je me permets de vous solliciter car je ne trouve pas la solution.
Je possède un fichier avec une table de saisie comprenant des formules (feuille saisie)

Je souhaiterais qu'à l'ouverture, que les formules des colonnes B et C soient copier-coller en 123 (valeurs) et seulement pour celles où la la cellule "matricule" de référence est non vide.

Merci pour votre aide avec vos explications pour que je puisse comprendre la commande de condition.

vous trouverez un fichier exemple en pièce jointe

VB:
Sub copier_coller_123()
'
' copier_coller_123 Macro
'

'
    Range("B2:C3").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub

BNJ
 

Pièces jointes

  • VBa copier coller.xlsx
    11.2 KB · Affichages: 6

Fred0o

XLDnaute Barbatruc
Bonjour,

Je me permets de vous solliciter car je ne trouve pas la solution.
Je possède un fichier avec une table de saisie comprenant des formules (feuille saisie)

Je souhaiterais qu'à l'ouverture, que les formules des colonnes B et C soient copier-coller en 123 (valeurs) et seulement pour celles où la la cellule "matricule" de référence est non vide.

Merci pour votre aide avec vos explications pour que je puisse comprendre la commande de condition.

vous trouverez un fichier exemple en pièce jointe

VB:
Sub copier_coller_123()
'
' copier_coller_123 Macro
'

'
    Range("B2:C3").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub

BNJ
Bonjour @Bnj

Voici une proposition en piece jointe. A tester sur ton fichier reel.
VB:
Sub copier_coller_123()
    Dim c As Range
    For Each c In Range("BDD_4[Matricule]")
        If c <> "" Then
            Range(Cells(c.Row, 2), Cells(c.Row, 3)).Copy
            Range(Cells(c.Row, 2), Cells(c.Row, 3)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
        End If
    Next
    Application.CutCopyMode = False
End Sub
 

Pièces jointes

  • VBa copier coller_V1.xlsm
    22.6 KB · Affichages: 6

Bnj

XLDnaute Occasionnel
Bonjour,

Merci pour ton aide et notamment la réactivité, la macro semble fonctionner mais est très longue car elle s’exécute ligne par ligne. mon tableau réel comporte + de 400 lignes à l'heure actuelle.

Je ne sais pas comment éviter cette exécution ligne par ligne
 

Phil69970

XLDnaute Barbatruc
Re

@Bnj : Peut on savoir quelle solution tu as retenu pour que les futurs lecteurs qui ont la même problématique le voient.
Le forum sert sert aussi à cela, l'entraide que l'on ta apporté puisse servir à quelqu'un d'autre et aussi cela évite à quelqu'un de chercher une solution alors que ton problème pour toi est résolu.

@Phil69970
 

Bnj

XLDnaute Occasionnel
Bonjour à tous.

Suite à une modification imposée, j'ai dû convertir mon tableau en plage et du coup, la macro ne fonctionne plus.
J'ai bien essaye de modifier avec l'enregistreur de macro mais rien ne fonctionne.

je sollicite donc à nouveau votre aide et vos explications sur la solution que vous pourriez m'apporter

Bonne journée
 

Statistiques des forums

Discussions
298 030
Messages
1 965 289
Membres
200 895
dernier inscrit
Lisa Lisa