Sélection à l'aide de la souris

rened

XLDnaute Junior
Bonjour à tous
J'ai un problème que je n'arrive pas a solutionner
Je voudrais qu'avec un clique de la souris sur une cellule en feuille 1
se transfert ou copie en feuille3 voir fichier joint
Merci de votre collaboration
Rened:
 

Pièces jointes

  • SÉLECTION.xls
    28 KB · Affichages: 112
Dernière édition:

Excel_lent

XLDnaute Impliqué
Re : Sélection à l'aide de la souris

Re,

Si tu te contentes de copier le texte de la macro dans ta feuille « Teinturier » de l'éditeur, tu auras bien une procédure :
Private Sub Woorksheet_SelectionChange(ByVal Target As Range) ...
mais elle risque de ne pas opérationnelle et ce doit être le cas.


Dans ta feuille « Teinturier » de l’éditeur VBA, clique sur (Général), Worksheet puis dans la liste choisis SelectionChange.


Tu as alors ces lignes :


Code:
  Private Sub Woorksheet_SelectionChange(ByVal Target As Range)
  End Sub

qui doivent s'afficher !


Copie maintenant les lignes manquantes sans oublier la ligne de déclaration :

Code:
  Dim fin As Integer, plage As Range, cellule As Range
Tu dois avoir la même chose que dans le fichier joint ci-après.
Cela devrait marcher maintenant.
 

Pièces jointes

  • facturation2 E.zip
    8 KB · Affichages: 38
Dernière édition:

rened

XLDnaute Junior
Re : Sélection à l'aide de la souris

Bonjour Excel_lent
J'ai été dans le VBA et sélectionner général mais rien ne se passait en cliquant sur général je n'avais pas Private Sub Woorksheet_SelectionChange(ByVal Target As Range)
End Sub
Par contre j'ai copier la formule dans générale
et sa fonctionne en partie on aproche de la solution
la réponse lors que je sélectionne est la suivante

PRÉ VERNIS 2002 181.00
PRÉ VERNIS EST OK 2002 ? 181.00 EST OK
2002 Je ne sais pas d'ou il proviens peut il sélection d'acoté qui est 2002.00
problablement que la deuxième sélection est erroné ?
Rened
 

Excel_lent

XLDnaute Impliqué
Re : Sélection à l'aide de la souris

Jusqu'au bout de la nuit : Re et à tous les autres tant que j'y suis.

Code:
.Range("B29") = Range("F" & Target.Row)
C'est cette ligne qui te donne le 2002 en "Soumission!B29".
Ce 2002 vient de la colonne F (voir premiers fichiers) et de la ligne (Row) de la cellule sur laquelle se trouve le curseur.
Dans le dernier fichier cela donnait toujours le contenu de D18 qui était copié dans la colonne F.
Tu peux aussi avoir un mauvais affichage à cause de la zone traitée par
Code:
Set plage = Range("A2:Q" & fin)
(première remarque, t'en souviens-tu ?)
 

rened

XLDnaute Junior
Re : Sélection à l'aide de la souris

Salut Excel_lent
Après plusieurs test c'est bien la deuxième sélection
qui est problème, la deuxième sélection devrait être seulement les
éléments de la ligne 5 du fichier facturation2 que je t'ai envoyé précédenment
Rened
 

Excel_lent

XLDnaute Impliqué
Re : Sélection à l'aide de la souris

Bon nouveau jour (ici),

Aurais-je bien compris cette fois ?
Remplace
Code:
.Range("B29") = Range("F" & Target.Row)
par
Code:
.Range("B29") = Cells(5, Target.Column)
pour avoir le mot écrit dans la cellule A5 (ou B5, ou C5 ...) au dessus de la sélection.
 

rened

XLDnaute Junior
Re : Sélection à l'aide de la souris

Bonne journée EXCEL_LENT
J'ai tester et tout fonction à merveille
Reste une fonction
Je veux que sur soumission lors que la ligne29
est occupé que lors que je sélectionne une deuxiéme fois sur PRÉ VERNIS
qu'on passe à la ligne suivant
Voici la formule que j'ai utilisé ou est l'erreur
Dim fin As Integer, plage As Range, cellule As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
fin = Range("f65536").End(xlUp).Row
Set plage = Range("A2:Q" & fin)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, plage) Is Nothing Then
For Each cellule In plage
If Target = cellule Then
With Sheets("Soumission")
.Range("A29") = "PRÉ VERNIS"
.Range("B29") = Cells(5, Target.Column)
.Range("J29") = Target.Value
Li = 29
For L = 1 To UBound(Plg, 1)
If Plg(L, 2) <> "" Or Plg(L, 5) <> "" Or Plg(L, 6) <> "" Then
.Range("A" & Li) = Plg(L, 1)
.Range("J" & Li) = Plg(L, 10)
Li = Li + 1
End If
Next L
Exit Sub
End With
End If
Next
End If
End Sub

Merci
Rened
 

Excel_lent

XLDnaute Impliqué
Re : Sélection à l'aide de la souris

Bonjour rened et à tous.

à tester :
Code:
Dim fin As Integer, plage As Range, cellule As Range, li As Byte

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
fin = Range("F65536").End(xlUp).Row
Set plage = Range("A2:Q" & fin)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, plage) Is Nothing Then
  li = 29
  For Each cellule In plage
    If Target = cellule Then
      With Sheets("Soumission")
        li = IIf(.Range("A29") = "PRÉ VERNIS", 30, 29)
        .Range("A" & li) = "PRÉ VERNIS"
        .Range("B" & li) = Cells(5, Target.Column)
        .Range("J" & li) = Target.Value
        Exit Sub
      End With
    End If
  Next
End If
End Sub
où après le premier cas, seule la ligne 30 change.
Je ne sais pas s'il y aura plus de 2 cas.
Pour ton code, comment est défini Plg( , ) ? Est-ce un tableau à 2 dimensions ?
Une remarque : il est difficile de régler un problème d'un seul coup avec des bouts de code !

 

rened

XLDnaute Junior
Re : Sélection à l'aide de la souris

Bonjour Excel_lent
J'ai testé ta macros
Elle fonctionne a moitié
Je m'explique lors de la sélection 1 tous s'inscrit correctement
Loes de la 2 ième le tous s'incrit correctement mais toujours dans la même ligne 29 Je désire que lorsque la ligne 29 est occupé soit par la première sélection ou
par la sélection d'une autre feuille qu'on passe a la ligne 30 si 30 occupé pas à 31 etvainsi de suite.
que veut dire tableau à 2 dimension
Merci encore une fois pour ton aide
bien appréciée
Rened
 

rened

XLDnaute Junior
Re : Sélection à l'aide de la souris

Aussi j'ai oublié de te mentionner que le fichier comporte plusieurs autre feuille
qui auront la même macros mais dont l'une comprend une autre macros que voici
Option Explicit


Public Sub Devis()
Dim Plg As Variant, L As Integer, li As Integer
With Worksheets("Devis")
Plg = .Range("B12:K" & .Range("B65536").End(xlUp).Row)
End With

With Worksheets("Soumission")
.Range("A29:A57").ClearContents
.Range("J29:J57").ClearContents
li = 29
For L = 1 To UBound(Plg, 1)
If Plg(L, 2) <> "" Or Plg(L, 5) <> "" Or Plg(L, 6) <> "" Then
.Range("A" & li) = Plg(L, 1)
.Range("J" & li) = Plg(L, 10)
li = li + 1
End If
Next L

End With

End Sub

Private Sub CommandButton1_Click()
Devis
End Sub

Rened
 

Excel_lent

XLDnaute Impliqué
Re : Sélection à l'aide de la souris

Re,

Le test ne ne faisait que sur un nom (PRE VERNIS). Je n'avais pas pensé à d'autres feuilles.
Essaie ce
Code:
Dim fin As Integer, plage As Range, cellule As Range, i As Integer

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
fin = Range("F65536").End(xlUp).Row
Set plage = Range("A2:Q" & fin)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, plage) Is Nothing Then
  For Each cellule In plage
    If Target = cellule Then
      With Sheets("Soumission")
          If .Range("A29") = "" Then i = 0 Else i = i + 1
          .Range("A29").Offset(i, 0) = "PRÉ VERNIS"
          .Range("B29").Offset(i, 0) = Cells(5, Target.Column)
          .Range("J29").Offset(i, 0) = Target.Value
          Exit Sub
      End With
    End If
  Next
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12