VBA-Excel : Comment détecter une cellule vide ou non?

VBA-Excel : Comment détecter une cellule vide ou non? - Programmation

Marsh Posté le 02-02-2002 à 14:06:32    

[Mode gros newbie on]
 
J'ai fait une macro qui doit copier le contenu d'une cellule ds une autre. Seulement, s'il y'a déjà qqs chose ds la cellule cible, je veux que le contenu de le cellule source soit copier ailleurs (peu importe ou).
 
Comment lui dire de vérifier que me cellule cible contient qqs chose?
Voila le petit bout de macro qui me fait chier :
 
    Range("A4" ).Activate
    Selection.Copy
    Range("B25:I25" ).Select
    If ??????????? = 0 Then
    ActiveSheet.Paste
    End If
    If ??????????? = 1 Then
    Range("B26:I26" ).Select
 etc......
 
C quoi la fonction que je doit mettre à la place des points d'interro?
Merci d'avance.

Reply

Marsh Posté le 02-02-2002 à 14:06:32   

Reply

Marsh Posté le 10-03-2002 à 18:21:40    

nul_olive a écrit a écrit :

[Mode gros newbie on]
 
J'ai fait une macro qui doit copier le contenu d'une cellule ds une autre. Seulement, s'il y'a déjà qqs chose ds la cellule cible, je veux que le contenu de le cellule source soit copier ailleurs (peu importe ou).
 
Comment lui dire de vérifier que me cellule cible contient qqs chose?
Voila le petit bout de macro qui me fait chier :
 
    Range("A4" ).Activate
    Selection.Copy
    Range("B25:I25" ).Select
    If ??????????? = 0 Then
    ActiveSheet.Paste
    End If
    If ??????????? = 1 Then
    Range("B26:I26" ).Select
 etc......
 
C quoi la fonction que je doit mettre à la place des points d'interro?
Merci d'avance.  




if activecell.value=""

Reply

Marsh Posté le 10-03-2002 à 18:22:43    

Fais gaffe, t'es toujours en mode gros newbie.  N'oublie pas d'en sortir...
Sinon, je suis ok pour la réponse de nur.


---------------
Mieux vaut faire le con que l'être vraiment - www.lescons.be -
Reply

Marsh Posté le 10-03-2002 à 21:51:10    

La façon plus propre de faire est isempty(activecell)
 
Voici un petit exemple qui contient d'autres astuces:
 
Dim iI As Integer
Dim vI As Variant
 
Sub TestType()
  ' Je vérifie s'il y a déjà une feuille "TestType"
  For Each vI In Worksheets
    If vI.Name = "TestType" Then
      ' La ligne suivante empèche de devoir
      ' confirmer la suppression
      Application.DisplayAlerts = False
      ' Je supprime la feuille "TestType"
      vI.Delete
      ' Ne pas oublier de remettre les messages de confirmation
      Application.DisplayAlerts = True
    End If
  Next vI
  ' J'ajoute une feuille
  Worksheets.Add
  ' Je la renomme
  ActiveSheet.Name = "TestType"
  ' J'y mets quelques valeurs
  [A1] = 5
  [B1] = 0
  [C1].Formula = "=a1/b1"
  [D1] = "Du texte"
  For iI = 1 To 5
    ' J'affiche le numéro du type de contenu
    ' Type 5 = vbDouble
    ' Type 10 = vbError
    ' Type 8 = vbString
    ' Type 0 = vbEmpty
    MsgBox ("La cellule " & Cells(1, iI).Address & vbCrLf _
    & "est de type " & VarType(Cells(1, iI)))
    If IsEmpty(Cells(1, iI)) Then
      ' Si la cellule est vide, je le dis
      MsgBox ("La cellule " & Cells(1, iI).Address & " est vide" )
    End If
  Next iI
End Sub

Reply

Marsh Posté le 11-03-2002 à 18:55:01    

AlainTech a écrit a écrit :

La façon plus propre de faire est isempty(activecell)
 
Voici un petit exemple qui contient d'autres astuces:
 
Dim iI As Integer
Dim vI As Variant
 
Sub TestType()
  ' Je vérifie s'il y a déjà une feuille "TestType"
  For Each vI In Worksheets
    If vI.Name = "TestType" Then
      ' La ligne suivante empèche de devoir
      ' confirmer la suppression
      Application.DisplayAlerts = False
      ' Je supprime la feuille "TestType"
      vI.Delete
      ' Ne pas oublier de remettre les messages de confirmation
      Application.DisplayAlerts = True
    End If
  Next vI
  ' J'ajoute une feuille
  Worksheets.Add
  ' Je la renomme
  ActiveSheet.Name = "TestType"
  ' J'y mets quelques valeurs
  [A1] = 5
  [B1] = 0
  [C1].Formula = "=a1/b1"
  [D1] = "Du texte"
  For iI = 1 To 5
    ' J'affiche le numéro du type de contenu
    ' Type 5 = vbDouble
    ' Type 10 = vbError
    ' Type 8 = vbString
    ' Type 0 = vbEmpty
    MsgBox ("La cellule " & Cells(1, iI).Address & vbCrLf _
    & "est de type " & VarType(Cells(1, iI)))
    If IsEmpty(Cells(1, iI)) Then
      ' Si la cellule est vide, je le dis
      MsgBox ("La cellule " & Cells(1, iI).Address & " est vide" )
    End If
  Next iI
End Sub  



t'es sur que ça marche isempty?
je croyais que ça servait a verifier si une variable etait affectée ou non

Reply

Marsh Posté le 11-03-2002 à 21:34:53    

Fais tourner l'exemple, tu verras.
J'ai pour principe de vérifier ce que je dis (histoire de pas TROP dire de conneries.
Le code envoyé est un copier/coller de celui que j'ai testé avant de l'envoyer.

Reply

Marsh Posté le 15-04-2015 à 12:43:54    

Merci pour cette info bien pratique !
 :)  

Reply

Sujets relatifs:

Leave a Replay

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