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

pierrof

XLDnaute Occasionnel
Bonjour forum
G créer une macro assez simple pour recopier une valeur de cellule en fonction de la valeur d'une autre valeur.
Voici mon code:
Dim plageP As String
Dim cell As Range
plageP = Sheets("op").Range("c7")
If Sheets("fab").Range("d44") = plageP Then
Range("c7").Select
Selection.Copy
Range("c7").Copy Destination:=Worksheets("fab").Range("e44")
ElseIf Sheets("fab").Range("d45") = plageP Then
Range("c7").Select
Selection.Copy
Range("c7").Copy Destination:=Worksheets("fab").Range("e45")

Else: Sheets("fab").Range("d46") = plageP
Range("c7").Select
Selection.Copy
Range("c7").Copy Destination:=Worksheets("fab").Range("e46")

End If



Je comprend pas ou est mon erreur😕 😕
 
Re : erreur de code

Bonjour pierrof

Dim plageP As String
Dim cell As Range
plageP = Sheets("op").Range("c7")
If Sheets("fab").Range("d44") = plageP Then
Range("c7").Select
Selection.Copy
Range("c7").Copy Destination:=Worksheets("fab").Range("e44")
ElseIf Sheets("fab").Range("d45") = plageP Then
Range("c7").Select
Selection.Copy
Range("c7").Copy Destination:=Worksheets("fab").Range("e45")

Else: Sheets("fab").Range("d46") = plageP
Range("c7").Select
Selection.Copy
Range("c7").Copy Destination:=Worksheets("fab").Range("e46")

End If

on va deja epurer les commandes inutiles
Dim plageP As String
Dim cell As Range
plageP = Sheets("op").Range("c7")
If Sheets("fab").Range("d44") = plageP Then
Range("c7").Copy Destination:=sheets("fab").Range("e44")
ElseIf Sheets("fab").Range("d45") = plageP Then
Range("c7").Copy Destination:=sheets("fab").Range("e45")
Else
Sheets("fab").Range("d46") = plageP
Range("c7").Copy Destination:=sheets("fab").Range("e46")
End If
end if
 
Re : erreur de code

Bonjour pierrof, wilfried_42

Remplace :

plageP = Sheets("op").Range("c7")

par

plageP = Sheets("op").Range("e7")

Pour ce code :
Sheets("fab").Range("bf65536").End(xlUp).Offset(1, 0)

Cela donne la première cellule vide de la colonne bf.
("bf65536").End(xlup) donne la dernière cellule non vide de la colonne.
Offset(1,0) provoque un décallage d'une cellule vers le bas. offset(ligne,colonne)

A+
 
Re : erreur de code

re:
J'aurai voulu avoir des explication sur ce code surtout la fin merci

Sheets("fab").Range("bf65536").End(xlUp).Offset(1, 0)

logiquement ce code fait : sur la feuille "fab", colonne "bf" une recherche de la deniere cellule non vide End(Xlup) et va a la ligne suivante : Offset(1,0)
neanmoins, il n'est pas complet dans l'etat présenté la
 
- 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

Retour