Question simple

cs_marsupio Messages postés 25 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 20 avril 2005 - 21 mars 2005 à 12:22
cs_marsupio Messages postés 25 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 20 avril 2005 - 22 mars 2005 à 11:27
Bonjour,

sous excel et vb, pour tester si une case a une valeur ou non...

je met: if blablabla = "" then

là je test qu'il n'y a rien d'écrit,

Mais si je veux tester s'il y a du texte, qu'est ce que je dois mettre (j'ai essayé if blablabla= TEXT then, mais je pense que ça n'a rien à voir..)

Merci

9 réponses

cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
21 mars 2005 à 12:32
qu'est-ce que tu entends par texte ?
il s'agit de savoir si la cellule contient une formule ou seulement une phrase ?
0
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
21 mars 2005 à 12:48
Réponse simple

if blabla <> "" then

Si blabla est différent de rien c'est qu'il y a quelque chose !

@+
0
cs_marsupio Messages postés 25 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 20 avril 2005
21 mars 2005 à 14:48
Merci d'avoir répondu aussi vite...

Alain, je veux tester une phrase ou un chiffre, bref des caractères. mais pas de formules...

Stephane, désolé, mais ta solution ne fonctionne pas.

Je vais traduire mon "blablabla"....

dim boucle as integer
for boucle = 0 to 100 step 1
if range("D10").offset (boucle)= "" then
je copie les trucs directement

après je veux:

if range("D10").offset(boucle)= TEXT then
(je met TEXT par défaut, puisque c'est ce que j'aimerai que vous m'indiquiez...)

alors dans ce cas, j'insère une ligne, et je copie ensuite.

En clair, le but est de vérifier avant de coller, s'il y a déjà des valeurs, s'il y en a, alors j'insère une ligne avant de copier.

Merci à tout les deux

Marsupio
0
cs_MasterHack Messages postés 586 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 13 février 2008 2
21 mars 2005 à 15:00
la je crois qu'il faut juste mettre un else

dim boucle as integer
for boucle = 0 to 100 step 1
if range("D10").offset (boucle)= "" then
je copie les trucs directement

else
...
<HR>

Life is short...Learn more
Copy Rights <> Rights to Copy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
21 mars 2005 à 16:05
Si tu veux verifier s'il y a des valeurs dans une cellule, il faut simplement...

if cells(4,10) <> 0 then 'pour la cellule D10
ça marche, je l'utilise
0
cs_marsupio Messages postés 25 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 20 avril 2005
21 mars 2005 à 17:15
Merci messieurs,

Masterhack: j'avais déjà essayé "else" ainsi que "else if"... ça ne marche pas

Stéphane: je comprends bien le principe de ton code, mais à moins d'être vraiment polio, ça ne fonctionne pas. Peut-être que cela vient du fait que je n'utilise pas VB directement. En effet le seul moyen de taper un code puisque je suis au boulot (bécane bloquée), c'est de passer par excel, or il y a peut-être des "restrictions" sur VB

Au risque de devenir lourd avec mon problème, je me risque à vous expliquer autre chose. Au départ, j'utilisais la fonction "else", mais je ne sais pas pourquoi, il m'insérait autant de lignes qu'il y avait de "boucles". J'avais l'impression qu'il ne fermait pas le "if pas text alors" initial. D'ou mon idée de rajouter un deuxième test : "if text alors"...

Je sais, c'est pas clair du coup, je vous copie le code en entier, ce sera peut-être plus parlant:

Sub test()


'je copie les données à insérer sur le tableau
Range("J5:P5").Copy
Workbooks.Open Filename:= _
"C:\.....\tableau.xls"
Range("AM2").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False


' nbr correspond au nombre de lignes du tableau
Dim nbr As Integer


'je fais une boucle qui test la référence de chaque ligne
Dim boucle As Integer
nbr = Range("AC2")
For boucle = 0 To nbr Step 1
If Range("AM2") = Range("B10").Offset(boucle) Then
'si la référence n'a pas de données, alors je copie bêtement...
If Range("L10").Offset(boucle) = "" Then
Range("AN2:AS2").Copy
Range("L10").Offset(boucle).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("B10").Offset(boucle).Select
'si il y a déja des données, j'insère une ligne, fais de la mise en page, et copie ensuite
ElseIf Range("L10").Offset(boucle) = Text Then
Rows("10:10").Offset(boucle).Insert shift:=xlUp
Range("B10:B11").Offset(boucle).MergeCells = True
Range("D10:D11").Offset(boucle).MergeCells = True
Range("E10:E11").Offset(boucle).MergeCells = True
Range("F10:F11").Offset(boucle).MergeCells = True
Range("G10:G11").Offset(boucle).MergeCells = True
Range("H10:H11").Offset(boucle).MergeCells = True
Range("I10:I11").Offset(boucle).MergeCells = True
Range("J10:J11").Offset(boucle).MergeCells = True
Range("B10:J11").Offset(boucle).VerticalAlignment = xlTop
Range("AN2:AS2").Copy
Range("L10").Offset(boucle).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'j'efface ma 1er copie
Range("AM2:AS2").ClearContents
End If
End If
Next boucle


'je ferme ma source
Windows("fiche entreprise.xls").Activate
Application.DisplayAlerts = False
Windows("fiche entreprise.xls").Close
Windows("tableau.xls").Activate
End Sub
0
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
21 mars 2005 à 17:16
dans ce cas là pour savoir si c'est une formule, tu testes le premier caractère, si c'est "=" alors il y a une formule

If cells(ligne,colonne) = vbnullstring then 'cellule vide
'code cellule vide
Elseif left(cells(ligne,colonne),1) = "=" then 'formule
'code cellule formule
else 'cellule ni vide ni formule
'code en question...
end if

voilà j'espère de na pas avoir répondu trop à l'ouest.
0
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
21 mars 2005 à 23:04
Tu doit être POLIO !

Désolé
0
cs_marsupio Messages postés 25 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 20 avril 2005
22 mars 2005 à 11:27
Merci messieurs

Alain, ton code ne répondait pas à mon problème, mais il m'a permis d'apprendre quelques trucs.

Stéphane, le polio recoppiat bêtement, ça marchait pas, mais en réfléchissant un poil, et en mettant:

else if range("trucmachin")<>""

là ça marche, car dans ton cas "<> 0" c'était uniquement pour les chiffres.

Bref, je vous ennuie encore pour vous remercier, et sait on jamais aidé quelqu'un qui est aussi naze que moi en VB
0
Rejoignez-nous