J’ai sur le code qui suit une erreur que je ne suis pas capable de comprendre, c’est pour cela que je demande votre aide, et des explications sur le pourquoi.
Code:
Private Sub Ajout_Click()
Dim premlign, As Long
Dim colonne1a As String, nomfeuille1 As String
Dim dl1 As Long, colonne1 As Long
Dim page As Range
Dim plage As Range
‘Et sur la ligne dessous une erreur d’exécution ‘1004’ : La méthode ‘Range de l’objet’_Global à échouté
For Each page In Range('C21:K61;C77:K132;C148:K203;C219:K274;C290:K345;C361:K400' & Range('C65536').End(xlUp).Row) ‘Séléction des plages de la feuille de calcul
Set plage = Range(page.Offset(3, 21).Value) ‘ Début de la plage
plage.Name = page ‘plage nommée page
Next page
colonne1a = 'C'
nomfeuille1 = 'Devis'
premlign = 21 'première ligne
'recherche de la dernière ligne écrite
dl1 = Sheets(nomfeuille1).Range(colonne1a & 'page').End(xlUp).Row + 1
With Sheets('Devis') 'on ajoute dans devis
'Code=3 ! Désignation=4 ! U=8 ! Q=8 ! P.U.=10 ! Montant H.T.=11
If entete = 0 Then 'on affiche le texte de l'ouvrage
.Cells(dl1, 4) = List1
dl1 = dl1 + 1
entete = 1
End If
.Cells(dl1, 3 & 'page') = Ca 'Label de USF
.Cells(dl1, 4 & 'page') = List2 ‘Listbox de USF
.Cells(dl1, 8 & 'page') = Unit 'Label de USF
.Cells(dl1, 9 & 'page') = Q ‘Textbox de USF
.Cells(dl1, 10 & 'page') = Pu 'Label de USF
.Cells(dl1, 11 & 'page') = CDbl(PHT) 'Label de USF
dl1 = dl1 + 1
End With
Ca = ''
Pu = ''
Unit = ''
MoU = ''
Q = ''
PHT = ''
End Sub
Je vous remercie de vous pencher sur mon problème,
la seconde est toujours dans la même ligne, la fin : & Range('C65536').End(xlUp).Row)
correspond à un numéro de ligne donc un entier Integer ou Long. Soit elle n'a rien à faire ici, soit il faut l'écrire de cette façon :
For Each page In Application.Union(Range('C21:K61,C77:K132,C148:K203,C219:K274,C290:K345,C361:K400'), Range('A1:C' & Range('C65536').End(xlUp).Row)).Select
Il y a, je crois, dans ton code une énorme confusion pour la variable page qui est déclarée comme Range mais qui sert aussi a nommer une plage (String) et a définir le dernière numéro d'une colonne (Integer). Utilise des variables différentes et revoit ton code !!! Je ne peut pas te faire de proposition tellement c'est confus.
Bon la je crois que je vais craquer, j’ai pour temps fouillé dans chaque recoin du forum à la recherche de ce qui serai le mieux pour ce remplissage de cellules, je trouve sur un poste parlant de nommée les plages est mieux que bien d’autres solutions, je tache de bidouiller un bout de code qui ne va pas, grâce à toi Robert je réajuste avec ce bout de code :
Code:
For Each page In
Application.Union(Range('C21:K61,C77:K132,C148:K203,C219:K274,C290:K345,C361:K400'), Range('C' & Range('C65536').End(xlUp).Row)).Select
Et j’ai encore une erreur 424 je crois, qu’est ce que j’ai fait à excel pour mériter ça ?
Juste une derrière petite question histoire de me remonter le moral, ce que je veux faire est possible ou pas ? Vouloir remplir des plages de cellules de dimensions différentes et d’éloignement différent.
Mais bon, je me dis aussi ça ne fait pas que depuis le début de l’année que j’essaye d’apprendre ce langage, je ne peux pas avoir « le beurre, le bâton, l’argent et la crémière » du jour au lendemain, quoi que pour la heu !… le bâton je peux le prendre pour me taper sur les doigts tellement j’ai de fautes incohérentes aux dires de notre ami et fidèle Robert, non il n’y a pas que lui de Fidèle sur le forum après avoir parcouru moult postes jusqu’au fabuleux MUSEE, et à tous ces Fidèles incorruptibles exceliens et exceliennes, un grand MERCI pour toute la patience que vous développez à notre égard,
Bon j’arrête là, j’ai plus de kleenex la boite est vide, et je suis tout seul…
Je crois que je vais faire un tour dehors, me changer les idées,