Copie cellule dans une autre feuille

bonjour

comment faire cette formule

='besoin 2022'!L(49)C(3)

en VBA ?

merci

Bonjour Sphinxou,

Tu peux essayer ça :

Sheets("besoin 2022").Select
Résultat=Cells(49, 3).Select

pour affecter la valeur de ta cellule dans la variable résultat

Bonjour à tous,

Les.select sont inutiles....et à éviter tant que possible car il ne font que ralentir l’exécution du code...

range(TaCellule)=sheets("besoin 2022").cells(49,3).value

range(TaCellule)=sheets("besoin 2022").range("C49").value

Cordialement,

Effectivement je suis allé trop vite dans ma réponse...désolé !

Sheets("besoin 2022").Select
Résultat=Cells(49, 3).SelectValue

Et encore mieux comme tu l'as mi, en une seule ligne sans Select.

Résultat = Sheets("BDD").Cells(49, 3).Value

Après tout dépend de ce qu'il veut faire derrière, si il exécute plusieurs actions sur le même onglet il vaut mieux le sélectionner quand même non ?

en faite c'est un peu plus compliquer j'ai une feuille type bon de commande et une feuille commande qui recapitule toute les commandes et je voudrais que le montant de chaque commande que j'ajoute se mette dans le tableau commande.

ci joint voici le code quand je clique sur le bouton ajouter une commande

Private Sub CommandButton3_Click()

If Range("B2").Value = "" Then
MsgBox "Entrer un nom de projet !", vbExclamation
Exit Sub
End If

Worksheets("Sheet").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Shapes("CommandButton3").Delete
ActiveSheet.Name = Range("B2").Value
Sheets("Sheet").Range("A13:A55").ClearContents
Sheets("Sheet").Range("B13:B55").ClearContents
Sheets("Sheet").Range("C13:C55").ClearContents
Sheets("Sheet").Range("D13:D55").ClearContents
Sheets("Sheet").Range("E13:E55").ClearContents
Sheets("Sheet").Range("F13:F55").ClearContents
Sheets("Sheet").Range("I13:I55").ClearContents
'ActiveSheet.Columns("J:J").Insert Shift:=xlToRight
ActiveSheet.Range("J12").Value = "Reçu le"
ActiveSheet.Range("A9").Value = "N° de commande:"
'ActiveSheet.Name = Range("B2").Value
Sheets("Sheet").Range("B2").ClearContents
Sheets("Sheet").Range("B5").ClearContents

Call Module2.lien

End Sub

merci

et ci joint le code pour creer le lien de la commande dans la feuille commande

Sub lien()
Application.ScreenUpdating = False
Dim i As Long
 Dim var1b As Variant
 Dim varia As Variant
 var1b = ActiveSheet.Name
Sheets("Sommaire").Select

 i = Range("d" & Rows.Count).End(xlUp).Row + 1
ActiveSheet.Hyperlinks.Add Anchor:=Range("d" & i), Address:="", SubAddress:="'" & _
var1b & "'" & "!A1", TextToDisplay:=var1b

End Sub

merci

Re,

@quentinh35:

Inutile d’être désolé, , je ne fait que transmettre les conseils des pros.

C'est en faisant des erreurs que l'on progresse (et j'en fait encore beaucoup!),

Après tout dépend de ce qu'il veut faire derrière, si il exécute plusieurs actions sur le même onglet il vaut mieux le sélectionner quand même non ?

Pour charger la valeur, il est inutile de sélectionner l'onglet sur lequel elle se trouve, fait des essais, tu verras.

7classeur1.xlsm (35.52 Ko)

Tu peux exécuter la macro depuis n'importe quel onglet, le résultat sera le même (il suffit de préciser sur quel onglet tu agis).

Cordialement,

Bonjour,

Merci @xorsankukai pour tes explications ! J'ai modifié la macro sur laquelle je suis en train de travailler en intégrant des With notamment, et à l'avenir je garde dans un coin de ma tête qu'il faut utiliser les Select le moins possible

C'est également plus clair dans la macro (moins de caractères).

@Sphinxou, peux-tu préciser ta demande ? En mettant un fichier ou des commentaires où il te manque des instructions dans ton code ?

Rechercher des sujets similaires à "copie feuille"