XL 2019 Copie cellule d'une feuille à l'autre

chinel

XLDnaute Impliqué
Bonjour j'ai une macro pour copier des données d'une cellule vers une autre feuille mais je désire ne pas avoir de doublon. Besoin d'aide, merci

Sub ajouteràlaliste()
Dim Valeur As String
Valeur = Range("B4").Value
With Sheets("Personnel")
If .Range("A4") = "" Then
.Range("A4").Value = Valeur
Else
.Range("A65536").End(xlUp).Offset(1, 0).Value = Valeur
End If
End With
End Sub

ce code c'est juste pour copier la cellule B4 de la feuille "Planning" vers la feuille "Personnel" en A4 mais si je veux prendre la cellule C4 de la feuille "Planning" vers la feuille "Personnel" en B4, comment faire ?
 
Dernière édition:
Solution
Re

1) Bruno à raison pour le titre, édite le et modifie le.
Tu pourrais mettre :
Copie cellule d'une feuille à l'autre

2) Un peu (beaucoup) de rigueur serait le bienvenu dans tes demandes

ce code c'est juste pour copier la cellule B4 de la feuille "Planning" vers la feuille "Personnel" en A4 mais si je veux prendre la cellule C4 de la feuille "Planning" vers la feuille "Personnel" en B4, comment faire ?

Et dans ton fichier je vois ceci !!!

1671093794509.png


Le code qui réponds a ta demande comme demandée dans TON fichier

VB:
Sub ajouteràlaliste()
Dim Derlig&
With Sheets("Personnel")
    Derlig = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & Derlig).Value...

Phil69970

XLDnaute Barbatruc
Bonjour @chinel

Je te propose

VB:
Sub ajouteràlaliste()
Dim Valeur As String, Derlig&
Valeur = Range("B4").Value
With Sheets("Personnel")
    If .Range("A4") = "" Then
        .Range("A4").Value = Valeur
    Else
        .Range("A65536").End(xlUp).Offset(1, 0).Value = Valeur
    End If
    Derlig = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A4:A" & Derlig).RemoveDuplicates Columns:=1, Header:=xlNo
End With
End Sub

Merci de ton retour

@Phil69970
 

chinel

XLDnaute Impliqué
Bonjour @chinel

Je te propose

VB:
Sub ajouteràlaliste()
Dim Valeur As String, Derlig&
Valeur = Range("B4").Value
With Sheets("Personnel")
    If .Range("A4") = "" Then
        .Range("A4").Value = Valeur
    Else
        .Range("A65536").End(xlUp).Offset(1, 0).Value = Valeur
    End If
    Derlig = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A4:A" & Derlig).RemoveDuplicates Columns:=1, Header:=xlNo
End With
End Sub

Merci de ton retour

@Phil69970
Je regarde tantôt car ici je bosse 😁 merci encore pour ton soutien !
 

chinel

XLDnaute Impliqué
Bonjour @chinel

Je te propose

VB:
Sub ajouteràlaliste()
Dim Valeur As String, Derlig&
Valeur = Range("B4").Value
With Sheets("Personnel")
    If .Range("A4") = "" Then
        .Range("A4").Value = Valeur
    Else
        .Range("A65536").End(xlUp).Offset(1, 0).Value = Valeur
    End If
    Derlig = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A4:A" & Derlig).RemoveDuplicates Columns:=1, Header:=xlNo
End With
End Sub

Merci de ton retour

@Phil69970
Merci beaucoup pour cette solution ! Mais ce code c'est juste pour copier la cellule B4 de la feuille "Planning" vers la feuille "Personnel" en A4 mais si je veux en plus prendre la cellule C4 de la feuille "Planning" vers la feuille "Personnel" en B4, comment faire ?
 

Phil69970

XLDnaute Barbatruc
Re

La demande initial a été modifié ....... :oops:

Voici le nouveau de ce que j'en ai compris avec néanmoins une incertitude sur la copie de C4 ???? o_O
==> Voir les commentaire dans le code ;)
==> J'ai choisi dans tous les cas la copie de C4 se fait ! (Sinon inverser les 2 lignes de commentaires)

VB:
Sub ajouteràlaliste()
Dim Derlig&
With Sheets("Personnel")
    Derlig = .Range("A" & Rows.Count).End(xlUp).Row + 1
    If .Range("A4") = "" Then
        .Range("A4").Value = Sheets("Planning").Range("B4").Value
        ' ??? Pas tres claire la nouvelle demande si on copie C4 uniquement ici ou dans tous les cas ????
        '.Range("B4").Value = Sheets("Planning").Range("C4").Value
    Else
        .Range("A" & Derlig).Value = Sheets("Planning").Range("B4").Value
    End If
    ' ??? Pas tres claire la nouvelle demande si on copie C4 dans tous les cas ????
    .Range("B4").Value = Sheets("Planning").Range("C4").Value
    
    .Range("A4:A" & Derlig).RemoveDuplicates Columns:=1, Header:=xlNo
End With
End Sub

Merci de ton retour

@Phil69970
 

Phil69970

XLDnaute Barbatruc
Re

1) Bruno à raison pour le titre, édite le et modifie le.
Tu pourrais mettre :
Copie cellule d'une feuille à l'autre

2) Un peu (beaucoup) de rigueur serait le bienvenu dans tes demandes

ce code c'est juste pour copier la cellule B4 de la feuille "Planning" vers la feuille "Personnel" en A4 mais si je veux prendre la cellule C4 de la feuille "Planning" vers la feuille "Personnel" en B4, comment faire ?

Et dans ton fichier je vois ceci !!!

1671093794509.png


Le code qui réponds a ta demande comme demandée dans TON fichier

VB:
Sub ajouteràlaliste()
Dim Derlig&
With Sheets("Personnel")
    Derlig = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & Derlig).Value = Sheets("Planning").Range("B4").Value
    .Range("B" & Derlig).Value = Sheets("Planning").Range("B5").Value
    .Range("A3:B" & Derlig).RemoveDuplicates Columns:=1, Header:=xlNo
End With
End Sub

Si au 1er post tu avait mis TON fichier on aurait gagné 6 messages et tu aurais gagné 24 H 00 ! :oops:

Perso je ne comprends pas trop la finalité de ton fichier et ce que tu cherches à faire 🤔mais j'ai répondu à ta question :)

@Phil69970
 

Pièces jointes

  • Planning d'équipe Melvin V1.xlsm
    975.3 KB · Affichages: 1

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino