Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2808 connectés 

 


Dernière réponse
Sujet : VBA-Excel : Comment détecter une cellule vide ou non?
arianinou Merci pour cette info bien pratique !
 :)  

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
arianinou Merci pour cette info bien pratique !
 :)  
AlainTech 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.
nur

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

AlainTech 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
Michrone 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.
nur

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=""

nul_olive [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.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)