[VBA Excel] Afficher message lorsque ...

Afficher message lorsque ... [VBA Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 24-01-2011 à 21:56:44    

Bonjour tout le monde,
 
Une quiche en VBA ...
Comment faire pour afficher un message au lancement d'une macro lorsqu'il n'y pas de ligne entière sélectionnée dans le fichier ouvert et l'onglet affiché ? J'ai tenté du If , du EntireRow et du Msgbox sans succès ...  
 
 :??:  

Reply

Marsh Posté le 24-01-2011 à 21:56:44   

Reply

Marsh Posté le 26-01-2011 à 16:29:03    

[:bugkiller2]  
 
Rien compris...
 
Explique explicitement ce que tu souhaites faire...


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 27-01-2011 à 20:40:17    

Ah... Voilà la macro et en rouge le code qui me pose problème :
 
Sub macroZ()
 
'permet de remplacer du texte ou un n° par la valeur de la 1ere cellule de chaque ligne dans les formules de cette même ligne
     
    If Selection.EntireRow.Count = 0 Then
 
            MsgBox (" Sélectionnez une ou plusieurs lignes " )
 
       Else
         
            For Each Rw In Selection.Rows
 
                Rw.Replace What:="text1", Replacement:=Rw.Cells(1).Value
     
            Next Rw
         
            MsgBox (" mise à jour effectuée avec succès " )
     
    End If
 
 
End Sub
 
 
Pour Selection.EntireRow.Count = 0,
en fait, même si une ou plusieurs cellules sont sélectionnées, sans sélection de ligne entière donc (sélection d'une ligne entière : en cliquant complètement à gauche d'une ligne), Excel intégre quand même la ligne utilisée par la cellule. Selection.EntireRow.Count = 0 n'est donc jamais égale à 0 alors que je voudrais signaler l'absence de ligne entière sélectionnées...  :pt1cable:  
 
Une idée ?

Reply

Marsh Posté le 28-01-2011 à 11:16:36    

Hello
 
Je n'ai pas cherché plus que ca, mais a ma connaissance tu ne peux pas detecter (simplement) si une ligne est sélectionnée.
Quand tu cliques sur une ligne ce n'est qu'un "raccourci" pour dire que tu sélectionnes de la colonne 1 à 256 (sur Excel 2003) ou de la colonne 1 à 16384 (sous Excel 2007)
 
On peut toujours jouer sur ce que renvoie la selection etc. mais bon je pense que ce qui suit est plus simple.
 
 

Code :
  1. Sub Blue_Cactus()
  2.  
  3. 'On regarde la version d'Excel
  4. Version = CInt(Mid(Application.Version, 1, InStr(1, Application.Version, "." ) - 1))
  5.  
  6. 'On compte le nb de colonnes selectionées
  7. CpteCol = Selection.Columns.Count
  8.  
  9. 'En fonctin de la version et du nombre de colonnes selectionnées on en deduit si une ligne entiere est selectionnee ou pas
  10. If (CpteCol = 256 And Version <= 11) Or (CpteCol = 16384 And Version > 11) Then MsgBox "toto"
  11. 'Si oui on envoie un message "toto"
  12.  
  13. End Sub


Message édité par SuppotDeSaTante le 28-01-2011 à 11:17:44

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 28-01-2011 à 14:18:16    

Je pense que ça va coller parfaitement à mon besoin. Super ! Merci beaucoup ! :-D

Reply

Marsh Posté le 28-01-2011 à 14:37:58    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed