Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Gestion des Call : le 1ier passe, le 2ième ne se lance pas

mounier1950

XLDnaute Nouveau
Re-bonjour,

J'ai une macro trop longue, donc à découper en "call" pour éviter une erreur type "procédure trop longue".
J'utilise 2 call en fonction du texte d'une cellule.

Le 1ier fonctionne (si texte "2 VOIT"), mais le 2ième ne se lance pas.
Svp, corrigez la macro pour que si la cellule contient au moins "VHU", alors il y a aura un call vh


Sub générerheures()
On Error Resume Next
Dim x As Object
For Each x In Selection

' SI 2 VOITURES
If x.Value = "2 VOIT" Then
Call Voit2

' SI VHU
If x.Value = "*VHU*" Then
Call Vh

End If
End If
Next
End Sub

Sub Voit2()
On Error Resume Next
Dim x As Object
For Each x In Selection

If Range("T6") = "2 VOIT" Then
Range("G3") = "0:30"
Range("H3") = "0:30"
End If

Next
End Sub

Sub Vh()
On Error Resume Next
Dim x As Object
For Each x In Selection

' SI VHU
If Range("T6") = "1 VHU" Then
Range("H3") = "0:11"
End If

If Range("T6") = "2 VHU" Then Range("H3") = "0:21"
If Range("T6") = "3 VHU" Then Range("H3") = "0:32"

Next
End Sub
 

M12

XLDnaute Accro
Re : Gestion des Call : le 1ier passe, le 2ième ne se lance pas

Bonjour,

entre les deux IF,

soit mettre un ELSE et oter un END IF (si c'est pas un, c'est l'autre)
ou
mettre un END IF entre chaque condition (C'est pas moi, je continue, et je teste l'autre condition)
 

mounier1950

XLDnaute Nouveau
Re : Gestion des Call : le 1ier passe, le 2ième ne se lance pas

Bonjour M12,

Désolé mais je ne vois pas comment mettre ça dans le code.
Quelqu'un pourrait-il modifier et copier le code ici svp (je ne suis pas flemmard, j'ai essayé sans réussir).
 

Paf

XLDnaute Barbatruc
Re : Gestion des Call : le 1ier passe, le 2ième ne se lance pas

bonjour à tous,

avec

Code:
' SI 2 VOITURES
If x.Value = "2 VOIT" Then
Call Voit2

' SI VHU
If x.Value = "*VHU*" Then
Call Vh

End If
End If

on ne teste = "*VHU*" que si si le test = "2 VOIT" est vrai !!
Il faudrait

Code:
' SI 2 VOITURES
If x.Value = "2 VOIT" Then
   Call Voit2
End If

' SI VHU
If x.Value = "*VHU*" Then
   Call Vh
End If

Par ailleurs, pas sûr que = "*VHU*" fonctionne. a priori il faudrait:
Code:
If x.Value Like "*VHU*" Then

A+
 

mounier1950

XLDnaute Nouveau
Re : Gestion des Call : le 1ier passe, le 2ième ne se lance pas

Paf,

C'est tout simplement magnifique.
Je suis trop content que ça fonctionne, et sans toi, ça n'aurait pas été possible.

Merci à vous deux d'aider les autres, j'espère que vous bénéficierez en retour d'une opportunité et d'une occasion de joie.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…