Changer le type d'une variable au cours d'un code
Résolu/Fermé
siamens_duj
Messages postés
192
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
-
16 déc. 2015 à 08:32
siamens_duj - 17 déc. 2015 à 08:44
siamens_duj - 17 déc. 2015 à 08:44
A voir également:
- Changer le type d'une variable au cours d'un code
- Changer dns - Guide
- Le code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Changer le code pin - Guide
- Code puk bloqué - Guide
5 réponses
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
Modifié par f894009 le 16/12/2015 à 10:12
Modifié par f894009 le 16/12/2015 à 10:12
Bonjour,
Code restructure et test d'erreur sur cellule I1. Par contre comprends pas le test
deuxieme possibilite en modifiant la formule:
Code restructure et test d'erreur sur cellule I1. Par contre comprends pas le test
res2 = Num_confcar res2 prend la valeur de Num_conf !!
Sub Confirmation() Dim NomDuFichier As String Dim res2 As String If Num_conf <> "Fin" Then Sheets("Confirmation").Select Range("A1").Select 'Se positionne sur la cellule A1 res2 = Num_conf Range("H1").Value = res2 'La cellule H1 affiche le numéro de confirmation, soit ce qui a été scanné en deuxième étape 'Conversion de données Range("H1").Select Selection.TextToColumns Destination:=Range("H1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ :=Array(1, 1), TrailingMinusNumbers:=True Range("I1").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],RC[-6]:R[852]C[-5],2,FALSE)" 'test si pas d'erreur fomule "I1" If Not (IsError(Range("I1"))) And res2 = Num_conf Then 'Si ce qui est entré dans la 2nd inputBox est different des num de confirmation dans la colonne C alors NomDuFichier = Range("I1") Dim Chemin As String Chemin = "D:\Users\lala\Documents\doc\" Chemin = Chemin & NomDuFichier & ".docx" Set appwd = CreateObject("Word.Application") With appwd .WordBasic.DisableAutoMacros 1 '0 pour activer .Visible = True .Documents.Open Chemin .Activate End With Else MsgBox "Fin, pas de nom de fichier" End If End If End Sub
deuxieme possibilite en modifiant la formule:
ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-1],RC[-6]:R[852]C[-5],2,FALSE)),"""",VLOOKUP(RC[-1],RC[-6]:R[852]C[-5],2,FALSE))" If Range("I1") <> "" And res2 = Num_conf Then 'Si ce qui est entré dans la 2nd inputBox est different des num de confirmation dans la colonne C alors
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
Modifié par pijaku le 16/12/2015 à 09:16
Modifié par pijaku le 16/12/2015 à 09:16
Bonjour,
Il faudrait nous montrer tout le code réalisé et qui ne fonction ne pas.
A priori, je ne vois pas pourquoi NomDuFichier as Variant ne fonctionnerai pas. A mon sens, il y a une autre erreur.
Par exemple : " .docx " normalement il ne doit pas y avoir d'espace.
Sinon, pour changer le type d'une variable, tu peux faire :
Mais je persiste à penser qu'il y a d'autres erreurs.
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
Il faudrait nous montrer tout le code réalisé et qui ne fonction ne pas.
A priori, je ne vois pas pourquoi NomDuFichier as Variant ne fonctionnerai pas. A mon sens, il y a une autre erreur.
Par exemple : " .docx " normalement il ne doit pas y avoir d'espace.
Sinon, pour changer le type d'une variable, tu peux faire :
Dim NomDuFichier as Variant, NomFic As String NomDuFichier = Range("I1").Value NomFic = CStr(NomDuFichier) 'transforme en String chemin= chemin & NomFic & ".docx"
Mais je persiste à penser qu'il y a d'autres erreurs.
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
siamens_duj
Messages postés
192
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
7
16 déc. 2015 à 09:17
16 déc. 2015 à 09:17
Merci pour votre réponse rapide, mais vous avez raison ce n'est visiblement pas ça.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
>
siamens_duj
Messages postés
192
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
16 déc. 2015 à 09:18
16 déc. 2015 à 09:18
Alors, comme demandé par tous ici, il nous faut le code complet...
siamens_duj
Messages postés
192
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
7
16 déc. 2015 à 10:49
16 déc. 2015 à 10:49
Je joins le code en réponse
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
16 déc. 2015 à 11:11
16 déc. 2015 à 11:11
Bonjour pijaku
En effet, je lui ai modifie son code (deux posibilites), car l'erreur venait de la formule qui est ecrite en I1 ou il n'y avait pas de esterreur a l'origine
En effet, je lui ai modifie son code (deux posibilites), car l'erreur venait de la formule qui est ecrite en I1 ou il n'y avait pas de esterreur a l'origine
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
>
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
16 déc. 2015 à 11:29
16 déc. 2015 à 11:29
En effet, problème résolu.
C'est tout de même mieux sans les GoTo...
C'est tout de même mieux sans les GoTo...
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
16 déc. 2015 à 08:49
16 déc. 2015 à 08:49
Bonjour,
Pas possible de changer la declaration d'une variable en dynamique
Declarez NomDuFichier en variant des le debut, ca m'etonnerait que cela vienne de la declaration en string!!!
Montrez le code complet de recherche et affectation
Pas possible de changer la declaration d'une variable en dynamique
Declarez NomDuFichier en variant des le debut, ca m'etonnerait que cela vienne de la declaration en string!!!
Montrez le code complet de recherche et affectation
siamens_duj
Messages postés
192
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
7
16 déc. 2015 à 09:18
16 déc. 2015 à 09:18
Merci pour votre réponse rapide, je met mon code tout de suite.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
16 déc. 2015 à 09:16
16 déc. 2015 à 09:16
Bonjour à tous,
Pour éviter un bug si le fichier n'existe pas:
voir aussi si chemin se termine par \
Pour éviter un bug si le fichier n'existe pas:
If NomDuFichier <> "" Then MsgBox "LeFichier Existe" 'mettre le code correspondant à la place Else MsgBox "LeFichier n'existe pas" Exit Sub End If
voir aussi si chemin se termine par \
siamens_duj
Messages postés
192
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
7
16 déc. 2015 à 10:50
16 déc. 2015 à 10:50
Je ne peux pas faire ça car en gros il faut entrer un numéro puis un autre numéro de confirmation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
siamens_duj
Messages postés
192
Date d'inscription
vendredi 20 juin 2014
Statut
Membre
Dernière intervention
14 février 2019
7
16 déc. 2015 à 09:18
16 déc. 2015 à 09:18
Sub Confirmation()
Dim NomDuFichier As Variant, NomFic As String
Dim res2 As String
If Num_conf <> "Fin" Then
Sheets("Confirmation").Select
Range("A1").Select 'Se positionne sur la cellule A1
res2 = Num_conf
Range("H1").Value = res2 'La cellule H1 affiche le numéro de confirmation, soit ce qui a été scanné en deuxième étape
'Conversion de données
Range("H1").Select
Selection.TextToColumns Destination:=Range("H1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Range("I1").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],RC[-6]:R[852]C[-5],2,FALSE)"
If res2 <> Num_conf Then 'Si ce qui est entré dans la 2nd inputBox est different des num de confirmation dans la colonne C alors
MsgBox ("fin")
GoTo fin
Else: GoTo suite
End If
suite:
NomDuFichier = Range("I1").Value
NomFic = CStr(NomDuFichier) 'Transforme en string
Dim Chemin As String
Chemin = "D:\Users\lala\Documents\doc\"
Chemin = Chemin & NomDuFichier & ".docx"
Set appwd = CreateObject("Word.Application")
With appwd
.WordBasic.DisableAutoMacros 1 '0 pour activer
.Visible = True
.Documents.Open Chemin
.Activate
End With
fin:
End If
End sub
16 déc. 2015 à 11:07
17 déc. 2015 à 08:44
J'ai commencé à faire le code mais je suis bloqué ...