IF en VB ??

IF en VB ?? - VB/VBA/VBS - Programmation

Marsh Posté le 13-07-2006 à 15:08:38    

:hello: tout le monde !
Je cherche à créer un fichier automatiquement, le problème c'est que le nom du fichier change à chaque fois : classeur1, classeur2 ....
du coup mon code ne fonctionne que quand la macro est lancé la première fois :
 
1. Workbooks.Add
2. Windows("Classeur1" ).Activate <-!!!!
3. Application.DisplayAlerts = False
4. ActiveSheet.SaveAs Filename:="tout.xls", FileFormat:=xlNormal
5. Application.DisplayAlerts = True


Message édité par jagwar le 13-07-2006 à 15:44:46
Reply

Marsh Posté le 13-07-2006 à 15:08:38   

Reply

Marsh Posté le 13-07-2006 à 15:25:57    

J'ai trouvé :  
 
Sub Nouveau_Classeur()
       Workbooks.Open "nom_du_fichier.xls"
End Sub
 

Reply

Marsh Posté le 13-07-2006 à 15:44:21    

Par contre j'aurais aimé savoir comment faire en VB :
 
Si Varx pair alors Action1
                sinon Action2
 
(je sais juste qu'on peut faire (Varx mod 2) = 0 renvoie vrai si Varx est pair !)

Reply

Marsh Posté le 13-07-2006 à 16:05:03    

Comment écrit-on l'opération modulo en VB ?x
autrement je pense que c'est :
If ((VarX modulo 2)=0) Then Action1
                                Else Action2
End If

Reply

Marsh Posté le 13-07-2006 à 18:27:06    

Bonjour,
 
pour le modulo, tu peux utiliser le caractère "anti-slash" : \
Exemple :
 

Resultat = 5 \ 2


Resultat vaut 2.
 
Sinon, tes questions ne sont pas très claires. Je te conseille de lire l'aide : positionne le curseur sur un mot clé et tape F1. Tu trouveras de toi-même la réponse à pas mal de tes questions ;)

Reply

Marsh Posté le 14-07-2006 à 23:37:23    

si j'ai capté tu veux savoir comment savoir(lol) si une variable est paire ou impaire?
 
utilise  
if Varx/2=int(varx/2) then ... -> Varx est pair
else...->Varx est impair.
si tu divise un nombre pair par deux, il n'y aura qu'une partie entière, donc int(x/2)=x/2
 
amicalement
 
mirox

Reply

Marsh Posté le 14-07-2006 à 23:58:10    

un modulo c'est plus simple [:spamafote]
on peut même faire mieux, et c'est plus rapide lors du traitement, on fait un & binaire du bordel, et du coup il n'y a pas d'opération de modulo
 
if varx&1 then  
  varx est impaire
else
  varx est paire
endif  
 
à tester sous VB6, car je ne sais pas si c'est faisable (faisable en PHP, C, JS..)


Message édité par gatsu35 le 14-07-2006 à 23:59:09
Reply

Marsh Posté le 15-07-2006 à 10:15:22    

Mod [F1]


Message édité par kiki29 le 15-07-2006 à 10:17:48
Reply

Marsh Posté le 17-07-2006 à 08:11:21    

OK merci beaucoup à tous !

Reply

Marsh Posté le 18-07-2006 à 08:39:23    

Bonjour,
 
Pour compléter les connaissances voici un autre moyen:
 

Sub test()
varx = 51
Run "macro" & (varx Mod 2)
End Sub
'-----------------------------------------------------
Sub macro0()
    MsgBox "le chiffre était pair"
End Sub
'-----------------------------------------------------
 
Sub macro1()
    MsgBox "le chiffre était impair"
End Sub


 

Reply

Marsh Posté le 18-07-2006 à 08:39:23   

Reply

Marsh Posté le 18-07-2006 à 08:52:33    

C'est juste un peu plus bloatware mais le concept est intéressant

Reply

Sujets relatifs:

Leave a Replay

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