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.