XL 2016 VBA : copier coller si cellules non vides

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

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

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

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
 
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
 
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
 
- 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
18
Affichages
134
Réponses
10
Affichages
455
Réponses
2
Affichages
214
Réponses
17
Affichages
878
  • Question Question
Microsoft 365 Erreur de format
Réponses
5
Affichages
436
Retour