Macro double clic

tactic6

XLDnaute Impliqué
Macro double clic [Résolu]

Bonjour le forum et tous les autres

Voici mon nouveau dilemme
je voudrais qu'en double cliquant sur une référence article celle ci va directement se mettre à la première ligne disponible sur ma facture
j'ai essayé avec ce code mais ça ne le fait pas ??
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim rang As Long, mysh As Object, nomcl As Long
Cancel = True
Set mysh = Sheets("Articles")
If Target.Column = 1 Then 'double click dans la 1er colonne
    With Sheets("Facture") 
        rang = .Range("B53").End(xlUp).Row + 1 
        .Cells(rang, 1) = mysh.Cells(Target.Row, 13) 
    End With
End If
Set mysh = Nothing 'vide la variable
MsgBox "Copie effectue !"
End Sub

Pourriez vous m'aider svp ma liste définitive articles contient environ 4000 références

Merci
 

Pièces jointes

  • tactic6.zip
    21.3 KB · Affichages: 90
  • tactic6.zip
    21.3 KB · Affichages: 87
  • tactic6.zip
    21.3 KB · Affichages: 91
Dernière édition:

ninbihan

XLDnaute Impliqué
Re : Macro double clic

Bonjour,

essaies avec ceci:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim rang As Long, mysh As Object, nomcl As Long
Cancel = True
Set mysh = Sheets("Articles")
If Target.Column = 1 Then 'double click dans la 1er colonne
    With Sheets("Facture")
        rang = .Range("B53").End(xlUp).Row + 1
        .Cells(rang, 2) = mysh.Cells(Target.Row, 1)
    End With
End If
Set mysh = Nothing 'vide la variable
MsgBox "Copie effectue !"
End Sub

Bon aprés midi,

Ninbihan
 

BERRACHED said

XLDnaute Accro
Re : Macro double clic

Salut tous le Monde
j'ai rajouter au code proposé une ligne qui transfere aussi le Libelle
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim rang As Long, mysh As Object, nomcl As Long
Cancel = True
Set mysh = Sheets("Articles")
If Target.Column = 1 Then 'double click dans la 1er colonne
    With Sheets("Facture")
        rang = .Range("B53").End(xlUp).Row + 1
        .Cells(rang, 2) = mysh.Cells(Target.Row, 1)
        .Cells(rang, 3) = mysh.Cells(Target.Row, 2)
    End With
End If
Set mysh = Nothing 'vide la variable
MsgBox "Copie effectue !"
End Sub
Cordialement
 

tactic6

XLDnaute Impliqué
Re : Macro double clic

Re à tous
ça marche super bien sauf que si j'écris un commentaire dans la colonne designation la macro ne repere pas mon ecriture et réécrit par dessus
on peut trouver une pararde ou dois-je obligatoirement y ajouter une reference a mon commentaire ?

en meme temps pourriez vous me commenter pour comprendre et extrapoler dans une autre macro les lignes:
.Cells(rang, 2) = Target
.Cells(rang, 3) = Target.Offset(0, 1)
.Cells(rang, 9) = Target.Offset(0, 3)

merci
 
Dernière édition:

tactic6

XLDnaute Impliqué
Re : Macro double clic

Bonjour le forum et tous les autres

je n'arrive pas a comprendre comment marche cette macro
j'ai compris que .cell(2.1) correspond à la colonne B et la ligne A
mais malgré tout je n'arrive pas à utiliser cette formule pour une autre application

exemple tout simple modifier la macro pour avoir uniquement que la ref en C12
et bien j'y arrive pas !!!

voici le code que j'ai testé:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim rang As Long 
Cancel = True
If Target.Column = 1 Then 'double click dans la 1er colonne
    With Sheets("Facture")
        .Cells(3, 12) = Target
        
    End With
End If
MsgBox "Copie effectue !"
End Sub

D'où vient mon erreur ???
 

tactic6

XLDnaute Impliqué
Re : Macro double clic

Re tout le monde
sur ce code:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim rang As Long, mysh As Object, nomcl As Long
Cancel = True
Set mysh = Sheets("Articles")
If Target.Column = 1 Then 'double click dans la 1er colonne
    With Sheets("Facture")
        rang = .Range("B53").End(xlUp).Row + 1
        .Cells(rang, 2) = mysh.Cells(Target.Row, 1)
        .Cells(rang, 3) = mysh.Cells(Target.Row, 2)
    End With
End If
Set mysh = Nothing 'vide la variable
MsgBox "Copie effectue !"
End Sub
où est la ligne qui detecte la 1° cellule B vide ?
je voudrais y mettre la C

j'ai essayé rang = .Range("C53").End(xlUp).Row + 1
mais ça marche pas ?
SVP
merci


@Excel_lent
pourquoi tu as autocensuré ton post c'était le plus complet ???
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Macro double clic

Salut Tactic6,

En général on met plutôt :
Code:
rang = .Range("C" & Rows.Count).End(xlUp).Row + 1
Mais, pour cela il ne faut pas de ligne total ou autre dans ta feuille ;)

A+
 

tactic6

XLDnaute Impliqué
Re : Macro double clic

merci de me répondre mais si je remplace
Code:
rang = .Range("B53").End(xlUp).Row + 1
par
Code:
rang = .Range("C" & Rows.Count).End(xlUp).Row + 1

il ne se passe aucun transfert ???

je dois peut être préciser que C et D sont fusionnées peut être ça pose problème
 

skoobi

XLDnaute Barbatruc
Re : Macro double clic

Bonsoir tactic6, Bruno, le forum,

sauf erreur de ma part, les cellules fusionnées n'empêche pas de trouver la dernière ligne vide d'une colonne à condition que la recherche se face sur la colonne la plus à gauche de la plage fusionnée, ce qui est ton cas.
La raison doit être autre, exécute la macro en pas à pas dans un module pour voir ce qui se passe.
 

Discussions similaires

Réponses
1
Affichages
164
Réponses
0
Affichages
141

Statistiques des forums

Discussions
312 145
Messages
2 085 762
Membres
102 966
dernier inscrit
InitialPP