[VBA] code ok mais rien ne s'écrit ds les cellules
Résolu/Fermé
jpub
Messages postés
43
Date d'inscription
mardi 10 mai 2011
Statut
Membre
Dernière intervention
19 janvier 2016
-
24 sept. 2014 à 10:48
jpub Messages postés 43 Date d'inscription mardi 10 mai 2011 Statut Membre Dernière intervention 19 janvier 2016 - 24 sept. 2014 à 14:36
jpub Messages postés 43 Date d'inscription mardi 10 mai 2011 Statut Membre Dernière intervention 19 janvier 2016 - 24 sept. 2014 à 14:36
A voir également:
- [VBA] code ok mais rien ne s'écrit ds les cellules
- Code asci - Guide
- Excel additionner des cellules - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Verrouiller cellules excel - Guide
5 réponses
scinarf
Messages postés
1098
Date d'inscription
samedi 18 novembre 2006
Statut
Membre
Dernière intervention
25 septembre 2014
252
24 sept. 2014 à 11:17
24 sept. 2014 à 11:17
Le classique horrible range ....
Il faut utiliser l'objet cells.
derniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
Sheets("Gestion").cells(derniereLigne, 4 ) = TextBox1.Text
Sheets("Gestion").cells(derniereLigne, 3) = DTPicker1.Value
If OptionButton1.Enabled Then
Sheets("Gestion").cells(derniereLigne, 2 ) = "P"
Else
Sheets("Gestion").cells(derniereLigne, 2) = "W"
End If
Il faut utiliser l'objet cells.
derniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
Sheets("Gestion").cells(derniereLigne, 4 ) = TextBox1.Text
Sheets("Gestion").cells(derniereLigne, 3) = DTPicker1.Value
If OptionButton1.Enabled Then
Sheets("Gestion").cells(derniereLigne, 2 ) = "P"
Else
Sheets("Gestion").cells(derniereLigne, 2) = "W"
End If
Normad
Messages postés
112
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
10 juin 2015
37
24 sept. 2014 à 11:22
24 sept. 2014 à 11:22
Bonjour,
L'adressage des cellules est faux
Les 2 erreurs :
Dans Range les guillemets supprime la référence à la variable derniereligne et envoi derniereligne en texte
Avec Range il faut faire l'adressage au format A1, pour utiliser des numéros de colonnes, utilisez Cells
L'adressage des cellules est faux
Sheets("Gestion").Range("derniereLigne, 4 ")FAUX
Sheets("Gestion").Cells(derniereLigne, 4)JUSTE
Les 2 erreurs :
Dans Range les guillemets supprime la référence à la variable derniereligne et envoi derniereligne en texte
Avec Range il faut faire l'adressage au format A1, pour utiliser des numéros de colonnes, utilisez Cells
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
24 sept. 2014 à 11:24
24 sept. 2014 à 11:24
Bonjour,
Pour Cells on utilise les coordonnées (ligne, colonne. Par ex Cells(2,2) pour la cellule "B2") d'une cellule.
Pour Range on utilise l'adresse de la cellule (par ex "A1" ou "F4")
Si tu veux utiliser Range :
Pour Cells on utilise les coordonnées (ligne, colonne. Par ex Cells(2,2) pour la cellule "B2") d'une cellule.
Pour Range on utilise l'adresse de la cellule (par ex "A1" ou "F4")
Si tu veux utiliser Range :
Sheets("Gestion").Range("D" & derniereLigne) = TextBox1.Text
jpub
Messages postés
43
Date d'inscription
mardi 10 mai 2011
Statut
Membre
Dernière intervention
19 janvier 2016
1
Modifié par jpub le 24/09/2014 à 12:39
Modifié par jpub le 24/09/2014 à 12:39
Re-Bonjour,
Un grand merci pour vos explications et vos réponses que je garde bien au chaud .
Polux31 pour ta centième réponses à tous mes petits problèmes un grand grand merci ^^
Je me permet une dernière question, pourquoi l'userform met presque 10 secondes à se fermer ?
code final
Private Sub CommandButton1_Click()
Dim she As Worksheet
On Error Resume Next
Set she = Sheets("Gestion")
If she Is Nothing Then
Exit Sub
Else
End If
derniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
Sheets("Gestion").Cells(derniereLigne, 4) = TextBox1.Text
Sheets("Gestion").Cells(derniereLigne, 3) = DTPicker1.Value
If OptionButton1.Enabled Then
Sheets("Gestion").Cells(derniereLigne, 2) = "P"
Sheets("Gestion").Cells(derniereLigne, 59) = Clear
Sheets("Gestion").Range(Cells(derniereLigne, 29), Cells(derniereLigne, 59)).Interior.ColorIndex = 16
Else
Sheets("Gestion").Cells(derniereLigne, 2) = "W"
Sheets("Gestion").Cells(derniereLigne, 27) = Clear
Sheets("Gestion").Range(Cells(derniereLigne, 6), Cells(derniereLigne, 27)).Interior.ColorIndex = 16
End If
Unload Me
End Sub
Cordialement,
Jonathan,
Un grand merci pour vos explications et vos réponses que je garde bien au chaud .
Polux31 pour ta centième réponses à tous mes petits problèmes un grand grand merci ^^
Je me permet une dernière question, pourquoi l'userform met presque 10 secondes à se fermer ?
code final
Private Sub CommandButton1_Click()
Dim she As Worksheet
On Error Resume Next
Set she = Sheets("Gestion")
If she Is Nothing Then
Exit Sub
Else
End If
derniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
Sheets("Gestion").Cells(derniereLigne, 4) = TextBox1.Text
Sheets("Gestion").Cells(derniereLigne, 3) = DTPicker1.Value
If OptionButton1.Enabled Then
Sheets("Gestion").Cells(derniereLigne, 2) = "P"
Sheets("Gestion").Cells(derniereLigne, 59) = Clear
Sheets("Gestion").Range(Cells(derniereLigne, 29), Cells(derniereLigne, 59)).Interior.ColorIndex = 16
Else
Sheets("Gestion").Cells(derniereLigne, 2) = "W"
Sheets("Gestion").Cells(derniereLigne, 27) = Clear
Sheets("Gestion").Range(Cells(derniereLigne, 6), Cells(derniereLigne, 27)).Interior.ColorIndex = 16
End If
Unload Me
End Sub
Cordialement,
Jonathan,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jpub
Messages postés
43
Date d'inscription
mardi 10 mai 2011
Statut
Membre
Dernière intervention
19 janvier 2016
1
24 sept. 2014 à 14:36
24 sept. 2014 à 14:36
correction du code
Dim she As Worksheet
Dim a, b As Boolean
On Error Resume Next
Set she = Sheets("Gestion")
If she Is Nothing Then
Exit Sub
Else
End If
a = OptionButton1.Value
b = OptionButton2.Value
derniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
Sheets("Gestion").Cells(derniereLigne, 4) = TextBox1.Text
Sheets("Gestion").Cells(derniereLigne, 3) = DTPicker1.Value
If OptionButton1.Value = True Then
Sheets("Gestion").Cells(derniereLigne, 2) = "W"
Sheets("Gestion").Cells(derniereLigne, 27) = Clear
Sheets("Gestion").Range(Cells(derniereLigne, 6), Cells(derniereLigne, 27)).Interior.ColorIndex = 16
Else
Sheets("Gestion").Cells(derniereLigne, 2) = "P"
Sheets("Gestion").Cells(derniereLigne, 59) = Clear
Sheets("Gestion").Range(Cells(derniereLigne, 29), Cells(derniereLigne, 59)).Interior.ColorIndex = 16
End If
End Sub
Dim she As Worksheet
Dim a, b As Boolean
On Error Resume Next
Set she = Sheets("Gestion")
If she Is Nothing Then
Exit Sub
Else
End If
a = OptionButton1.Value
b = OptionButton2.Value
derniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
Sheets("Gestion").Cells(derniereLigne, 4) = TextBox1.Text
Sheets("Gestion").Cells(derniereLigne, 3) = DTPicker1.Value
If OptionButton1.Value = True Then
Sheets("Gestion").Cells(derniereLigne, 2) = "W"
Sheets("Gestion").Cells(derniereLigne, 27) = Clear
Sheets("Gestion").Range(Cells(derniereLigne, 6), Cells(derniereLigne, 27)).Interior.ColorIndex = 16
Else
Sheets("Gestion").Cells(derniereLigne, 2) = "P"
Sheets("Gestion").Cells(derniereLigne, 59) = Clear
Sheets("Gestion").Range(Cells(derniereLigne, 29), Cells(derniereLigne, 59)).Interior.ColorIndex = 16
End If
End Sub