Pb (VBA) InputBox et echec Range
Fermé
by
-
8 juil. 2011 à 11:25
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 8 juil. 2011 à 12:16
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 8 juil. 2011 à 12:16
A voir également:
- Pb (VBA) InputBox et echec Range
- Mode sans echec - Guide
- Ps4 mode sans echec - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
- Mode sans échec asus - Forum BIOS
- D'sub out of range - Forum Ecran
3 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
Modifié par pijaku le 8/07/2011 à 11:35
Modifié par pijaku le 8/07/2011 à 11:35
Bonjour,
Ca peux, peut être provenir d'un problème de type de variable. vous entrez des chiffres ou des lettres dans vos inputbox?
Des chiffres, attention car inputbox renvoie des chaines de caractères (string) et pas des nombres (long)...
Des lettres, alors attention à ne pas déclarer vos Inputbox L1 Long (nombres!!!)...
Ensuite, L1, L2, L3 sont des variables, donc lors de leur utilisation dans "Range(L1 & i) il convient de ne pas mettre de guillemets ""...
Ceci devrait fonctionner, en entrant des lettres dans vos inputbox. Exemple : a pour colonne 1, Z pour colonne 26...
Cordialement,
Franck P
Ca peux, peut être provenir d'un problème de type de variable. vous entrez des chiffres ou des lettres dans vos inputbox?
Des chiffres, attention car inputbox renvoie des chaines de caractères (string) et pas des nombres (long)...
Des lettres, alors attention à ne pas déclarer vos Inputbox L1 Long (nombres!!!)...
Ensuite, L1, L2, L3 sont des variables, donc lors de leur utilisation dans "Range(L1 & i) il convient de ne pas mettre de guillemets ""...
Ceci devrait fonctionner, en entrant des lettres dans vos inputbox. Exemple : a pour colonne 1, Z pour colonne 26...
Sub CalculDelai() 'Auteur: Bahia YOUSFI 'Caluler le temps écoulé entre la date de demande et la date de réalisation Dim i As Long Dim L1 As String, L2 As String, L3 As String Dim DateDemande As Date Dim DebutRealisation As Date L1 = UCase(InputBox("Quelle colonne contient les dates de demande?")) L2 = UCase(InputBox("Quelle colonne contient les dates de début de réalisation?")) L3 = UCase(InputBox("Dans quelle colonne voulez-vous stocker les résultats?")) For i = 2 To Range("A65536").End(xlUp).Row Step 1 DateDemande = Range(L1 & i).Value DebutRealisation = Range(L2 & i).Value Range(L3 & i).FormulaLocal = DateDiff("h", DateDemande, DebutRealisation, vbMonday, vbFirstJan1) Next i End Sub
Cordialement,
Franck P
J'ai essayé avec les 2 et ça n'a pas marché :S
J'ai même essayé d'entrer la lettre saractérisant la colonne entre guillemetz et ça ne marche pas
J'ai même essayé d'entrer la lettre saractérisant la colonne entre guillemetz et ça ne marche pas
Le pb vient nécessairement de mon utilisation sûrement erronée de InputBox parce que ce morceau de code lui marche parfaitement
Sub Delai()
Dim i As Long
Dim DateDemande As Date
Dim DebutRealisation As Date
For i = 2 To Range("A65536").End(xlUp).Row
DateDemande = Range("L" & i).Value
DebutRealisation = Range("BO" & i).Value
Range("BQ" & i).FormulaLocal = DateDiff("h", DateDemande, DebutRealisation, vbMonday, vbFirstJan1)
Next i
End Sub
Sub Delai()
Dim i As Long
Dim DateDemande As Date
Dim DebutRealisation As Date
For i = 2 To Range("A65536").End(xlUp).Row
DateDemande = Range("L" & i).Value
DebutRealisation = Range("BO" & i).Value
Range("BQ" & i).FormulaLocal = DateDiff("h", DateDemande, DebutRealisation, vbMonday, vbFirstJan1)
Next i
End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
8 juil. 2011 à 12:16
8 juil. 2011 à 12:16
Essaye ce test, en entrant des lettres (A, B, C ou L ou BO, comme tu veux...) dans les inputbox :
Sub Test() Dim i As Long Dim L1 As String, L2 As String, L3 As String L1 = UCase(InputBox("Quelle colonne contient les dates de demande?")) L2 = UCase(InputBox("Quelle colonne contient les dates de début de réalisation?")) L3 = UCase(InputBox("Dans quelle colonne voulez-vous stocker les résultats?")) For i = 2 To 5 Step 1 Range(L1 & i).Select MsgBox Range(L1 & i).Address & " contient " & Range(L1 & i).Value Range(L2 & i).Select MsgBox Range(L2 & i).Address & " contient " & Range(L2 & i).Value Range(L3 & i).Select MsgBox Range(L3 & i).Address & " contient " & Range(L3 & i).Value Next i End Sub