Saisie identique multi zones

  • Initiateur de la discussion loridam
  • Date de début
L

loridam

Guest
Bonjour, le forum

Je dois mettre des croix (caractère X) dans une sélection multiple que j'ai sélectionnée.

Comment écrire ça en VBA.

Merci pour votre aide.
 

Marc_du_78

XLDnaute Accro
Bonjour loridam, le Forum,

Un exemple (changer les valeurs A1 (ou j'ai mis le X et la zone B4:D25 ou j'ai coller.
Réalisé avec l'enregistreur de macros.

Sub Macro1()
Range('A1').Select
Selection.Copy
Range('B4:D25').Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Bonne journée.
 

Hervé

XLDnaute Barbatruc
Bonjour loridam, marc :)

marc, loridam nous précise qu'il ne veut placer les X que dans les cellules sélectionnées, et ton code sélectionne automatiquement b4:d25.

Une autre approche de ton code en supprimant également les select inutiles :) :


Sub Bouton2_QuandClic()

Range('A1').Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=
False, Transpose:=False
End Sub


et ma propre contribution :


Sub Bouton1_QuandClic()
Dim c As Range

For Each c In Selection: c = 'X': Next c

End Sub

je vous souhaite une bonne journée

salut
 
L

loridam

Guest
Bonjour Marc et Hervé

Merci pour votre aide

La réponse d'Hervé me convient parfaitement.

Je voudrais maintenant que la macro s'exécute que si ma sélection multiple se trouve dans la zone B6:AF85

Par exemple si je sélectionne A1:A2 et B7:AF7 simultanément, il s'affiche un message 'Mauvaise sélection!'

Est-ce possible?
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonjour loridam, Marc et Hervé, bonjour à toutes et à tous :)

Une solution possible en reprenant le code d'Hervé (merci Hervé !) :p :

Sub Bouton1_QuandClic()
'
Dim C As Range
'
  With Intersect(Selection, Range('B6:AF85'))
    If Not .Cells Is Nothing Then
      If .Count = Selection.Count Then
        For Each C In Selection
          C = 'X'
        Next C
        Exit Sub
      End If
    End If
  End With
  MsgBox 'Mauvaise Sélection'
End Sub

Voili voilà

Tiens-nous au courant.

A+ ;)
 
L

loridam

Guest
Bonjour Charly2

Ton code correspond à ma demande, une seule erreur à priori.

Quand je sélectionne toutes les cellules à l'extérieur de la plage B6:AF85, il y a une erreur sur la ligne
If Not .Cells Is Nothing Then

Si je sélectionne une plage à l'intérieur et une à l'extérieur, c'est bon : le message s'affiche.


Si je sélectionne plusieurs plages à l'intérieur , c'est bon aussi: les croix s'affichent.

je te joins mon fichier.

@ bientôt
 
L

loridam

Guest
Voici le fichier.. [file name=Absences_Profs.zip size=13915]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Absences_Profs.zip[/file]
 

Pièces jointes

  • Absences_Profs.zip
    13.6 KB · Affichages: 17

Charly2

Nous a quittés en 2006
Repose en paix
re,

C'est corrigé :)

[file name=Loridam_SaisieMultiZonesV2.zip size=12209]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Loridam_SaisieMultiZonesV2.zip[/file]

A+ ;)
 

Pièces jointes

  • Loridam_SaisieMultiZonesV2.zip
    11.9 KB · Affichages: 13

Hervé

XLDnaute Barbatruc
re loridam, marc, salut charly :)

de rien charly :)

un tout petit peu plus court, facilement améliorable :


Sub Marquage_Abs()
Dim oIntersect As Range
'
Set oIntersect = Intersect(Selection, Range('B6:AF85'))
If Not oIntersect Is Nothing Then
       
If oIntersect.Count = Selection.Count Then Selection = 'X': Exit Sub
End If
MsgBox 'Mauvaise Sélection !'
End Sub

salut
 

ChTi160

XLDnaute Barbatruc
Salut loridam
bonsoir mes Amis Hervé et Charly
une version tirée de vos propositions plage interieure exterieure ????? lol
arff faut il encore que ce soit ce qu'il recherche LOL
même si tu sélectionnes des cellules en exterieur seules les cellules concernées sont prisent en compte Lol Arffff
Sub Marquage_Abs()
Dim oIntersect As Range
'
Set oIntersect = Intersect(Selection, Range('B6:C10'))
If Not oIntersect Is Nothing Then
oIntersect = 'X': Exit Sub
End If
MsgBox 'Mauvaise Sélection !'
End Sub

Bonne fin de Journée
 
L

loridam

Guest
Merci à tous,

Les solutions de vous trois marchent bien et répondent à mes besoins.

Je voulais vérifier la sélection de mes cellules pour éviter l'effacement des cellules hors de la zone F6:AF85 lors d'un clic indésirable sur le bouton des utilisateurs.

@ bientôt pour d'autres sollicitations!
 

Discussions similaires

Réponses
16
Affichages
519

Statistiques des forums

Discussions
312 571
Messages
2 089 809
Membres
104 278
dernier inscrit
LENZY