OVH Cloud OVH Cloud

comment choisit le sheet dans lequele j'ecris?

5 réponses
Avatar
txet
Bonjour,
Je viens de commencer a utiliser le VBA, je pensais que j'avais compris,
mais ça marche pas et je comprends pas quelle est mon erreur. Mon but, c'est
de faire une fonction qui prends les dates selectiones dans ma feuille excel,
regarde a les dates a cote (droite), fais un certain traitement et apres mets
le resultat dans le sheet2.
mom problemme c'est que quand je veux ecrire dans sheet2 je fais:

Worksheets("sheet2").Range("A" & i).Value = ocup

Et je obtiens un erreur type:
L'indice n'appartient pas a la selection
Je sais pas si l'erreur est dans cette ligne ou viens de plus loin, et tout
cas pour ecrire le recultat dans le meme feuille en utilisant
Cells(i,j)=ocup
j'ai pas des problemes.

Est-ce que quelqu'n a une idee de qu'est qui se passe?
Merci en advance, et desolee pour mon français.

J'ajoute tout mon code au cas ou

Sub ocupation()
Dim Cellule As Range
Dim h1, h2, taille_t As Integer
Dim taula() As Integer
Dim dd, d2, d1 As Date
Dim i, ocup

taille_t = 50
ReDim taula(taille_t + 1)
For i = 0 To taille_t
taula(i) = 0
i = i + 1
Next

dd = "01.01.2004"

For Each Cellule In Selection

h1 = DateDiff("h", dd, Cellule.Value)
h2 = DateDiff("h", dd, Cellule.Offset(0, 1).Value)

If taille_t < h2 Then
ReDim Preserve taula(h2 + 1)
For i = taille_t + 1 To h2
taula(i) = 0
'i = i + 1
Next
taille_t = h2
End If
taula(h1) = taula(h1) + 1
taula(h2) = taula(h2) - 1
Next

ocup = 0

For i = 0 To taille_t
ocup = ocup + taula(i)
Worksheets("sheet2").Range("A" & i).Value = ocup
Next

End Sub

5 réponses

Avatar
nicolas
Salut


Essaye

Sheets("Feuil2").Select
Range("A" & i).Select
ActiveCell = ocup

Nicolas

"txet" a écrit dans le message de news:

Bonjour,
Je viens de commencer a utiliser le VBA, je pensais que j'avais compris,
mais ça marche pas et je comprends pas quelle est mon erreur. Mon but,
c'est
de faire une fonction qui prends les dates selectiones dans ma feuille
excel,
regarde a les dates a cote (droite), fais un certain traitement et apres
mets
le resultat dans le sheet2.
mom problemme c'est que quand je veux ecrire dans sheet2 je fais:

Worksheets("sheet2").Range("A" & i).Value = ocup

Et je obtiens un erreur type:
L'indice n'appartient pas a la selection
Je sais pas si l'erreur est dans cette ligne ou viens de plus loin, et
tout
cas pour ecrire le recultat dans le meme feuille en utilisant
Cells(i,j)=ocup
j'ai pas des problemes.

Est-ce que quelqu'n a une idee de qu'est qui se passe?
Merci en advance, et desolee pour mon français.

J'ajoute tout mon code au cas ou

Sub ocupation()
Dim Cellule As Range
Dim h1, h2, taille_t As Integer
Dim taula() As Integer
Dim dd, d2, d1 As Date
Dim i, ocup

taille_t = 50
ReDim taula(taille_t + 1)
For i = 0 To taille_t
taula(i) = 0
i = i + 1
Next

dd = "01.01.2004"

For Each Cellule In Selection

h1 = DateDiff("h", dd, Cellule.Value)
h2 = DateDiff("h", dd, Cellule.Offset(0, 1).Value)

If taille_t < h2 Then
ReDim Preserve taula(h2 + 1)
For i = taille_t + 1 To h2
taula(i) = 0
'i = i + 1
Next
taille_t = h2
End If
taula(h1) = taula(h1) + 1
taula(h2) = taula(h2) - 1
Next

ocup = 0

For i = 0 To taille_t
ocup = ocup + taula(i)
Worksheets("sheet2").Range("A" & i).Value = ocup
Next

End Sub





Avatar
Daniel
For i = 0 To taille_t
ocup = ocup + taula(i)
Worksheets("sheet2").Range("A" & i).Value = ocup
Next


A la première exécution, i=0 donc Range("A" & i) = A0;
corrige :
Worksheets("sheet2").Range("A" & i+1).Value = ocup

Cordialement.
Daniel

Avatar
michdenis
Bonjour Txet,

'-------------------------
For i = 0 To taille_t
ocup = ocup + taula(i)
Worksheets("sheet2").Range("A" & i).Value = ocup
Next
'-------------------------

Dans ta boucle, au premier tour, où i = 0 , tu vas demander à excel d'écrire la valeur de ocup dans la cellule Range("A"& 0), est-ce
que tu connais une cellule dans excel qui a une adresse Range("A0") ... la ligne 0 n'existe pas ... c'est pourquoi excel te renvoie
ce message, l'objet que tu référencies n'existe pas !

Tu peux corriger si tu le désires : Range("A" & i +1)


Salutations!



"txet" a écrit dans le message de news:
Bonjour,
Je viens de commencer a utiliser le VBA, je pensais que j'avais compris,
mais ça marche pas et je comprends pas quelle est mon erreur. Mon but, c'est
de faire une fonction qui prends les dates selectiones dans ma feuille excel,
regarde a les dates a cote (droite), fais un certain traitement et apres mets
le resultat dans le sheet2.
mom problemme c'est que quand je veux ecrire dans sheet2 je fais:

Worksheets("sheet2").Range("A" & i).Value = ocup

Et je obtiens un erreur type:
L'indice n'appartient pas a la selection
Je sais pas si l'erreur est dans cette ligne ou viens de plus loin, et tout
cas pour ecrire le recultat dans le meme feuille en utilisant
Cells(i,j)=ocup
j'ai pas des problemes.

Est-ce que quelqu'n a une idee de qu'est qui se passe?
Merci en advance, et desolee pour mon français.

J'ajoute tout mon code au cas ou

Sub ocupation()
Dim Cellule As Range
Dim h1, h2, taille_t As Integer
Dim taula() As Integer
Dim dd, d2, d1 As Date
Dim i, ocup

taille_t = 50
ReDim taula(taille_t + 1)
For i = 0 To taille_t
taula(i) = 0
i = i + 1
Next

dd = "01.01.2004"

For Each Cellule In Selection

h1 = DateDiff("h", dd, Cellule.Value)
h2 = DateDiff("h", dd, Cellule.Offset(0, 1).Value)

If taille_t < h2 Then
ReDim Preserve taula(h2 + 1)
For i = taille_t + 1 To h2
taula(i) = 0
'i = i + 1
Next
taille_t = h2
End If
taula(h1) = taula(h1) + 1
taula(h2) = taula(h2) - 1
Next

ocup = 0

For i = 0 To taille_t
ocup = ocup + taula(i)
Worksheets("sheet2").Range("A" & i).Value = ocup
Next

End Sub
Avatar
txet
Merci beaucoup a touts, en faisant

Sheets("Feuil2").Select
Range("A" & i + 1).Select
ActiveCell = ocup

ça marche, je comprends pas pourquoi seulement

Worksheets("sheet2").Range("A" & i + 1).Value = ocup

ça ne marche pas, mais bon avec une façon de le faire marcher ça me sufis.

Merci
Chet



Bonjour Txet,

'-------------------------
For i = 0 To taille_t
ocup = ocup + taula(i)
Worksheets("sheet2").Range("A" & i).Value = ocup
Next
'-------------------------

Dans ta boucle, au premier tour, où i = 0 , tu vas demander à excel d'écrire la valeur de ocup dans la cellule Range("A"& 0), est-ce
que tu connais une cellule dans excel qui a une adresse Range("A0") ... la ligne 0 n'existe pas ... c'est pourquoi excel te renvoie
ce message, l'objet que tu référencies n'existe pas !

Tu peux corriger si tu le désires : Range("A" & i +1)


Salutations!



"txet" a écrit dans le message de news:
Bonjour,
Je viens de commencer a utiliser le VBA, je pensais que j'avais compris,
mais ça marche pas et je comprends pas quelle est mon erreur. Mon but, c'est
de faire une fonction qui prends les dates selectiones dans ma feuille excel,
regarde a les dates a cote (droite), fais un certain traitement et apres mets
le resultat dans le sheet2.
mom problemme c'est que quand je veux ecrire dans sheet2 je fais:

Worksheets("sheet2").Range("A" & i).Value = ocup

Et je obtiens un erreur type:
L'indice n'appartient pas a la selection
Je sais pas si l'erreur est dans cette ligne ou viens de plus loin, et tout
cas pour ecrire le recultat dans le meme feuille en utilisant
Cells(i,j)=ocup
j'ai pas des problemes.

Est-ce que quelqu'n a une idee de qu'est qui se passe?
Merci en advance, et desolee pour mon français.

J'ajoute tout mon code au cas ou

Sub ocupation()
Dim Cellule As Range
Dim h1, h2, taille_t As Integer
Dim taula() As Integer
Dim dd, d2, d1 As Date
Dim i, ocup

taille_t = 50
ReDim taula(taille_t + 1)
For i = 0 To taille_t
taula(i) = 0
i = i + 1
Next

dd = "01.01.2004"

For Each Cellule In Selection

h1 = DateDiff("h", dd, Cellule.Value)
h2 = DateDiff("h", dd, Cellule.Offset(0, 1).Value)

If taille_t < h2 Then
ReDim Preserve taula(h2 + 1)
For i = taille_t + 1 To h2
taula(i) = 0
'i = i + 1
Next
taille_t = h2
End If
taula(h1) = taula(h1) + 1
taula(h2) = taula(h2) - 1
Next

ocup = 0

For i = 0 To taille_t
ocup = ocup + taula(i)
Worksheets("sheet2").Range("A" & i).Value = ocup
Next

End Sub







Avatar
michdenis
Et bien,

Que ceci ne fonctionne pas, est très préoccupant...
si la feuille "sheet2" existe vraiment !

| Worksheets("sheet2").Range("A" & I + 1).Value = ocup



Salutations!




"txet" a écrit dans le message de news:
Merci beaucoup a touts, en faisant

Sheets("Feuil2").Select
Range("A" & i + 1).Select
ActiveCell = ocup

ça marche, je comprends pas pourquoi seulement

Worksheets("sheet2").Range("A" & i + 1).Value = ocup

ça ne marche pas, mais bon avec une façon de le faire marcher ça me sufis.

Merci
Chet



Bonjour Txet,

'-------------------------
For i = 0 To taille_t
ocup = ocup + taula(i)
Worksheets("sheet2").Range("A" & i).Value = ocup
Next
'-------------------------

Dans ta boucle, au premier tour, où i = 0 , tu vas demander à excel d'écrire la valeur de ocup dans la cellule Range("A"& 0),
est-ce
que tu connais une cellule dans excel qui a une adresse Range("A0") ... la ligne 0 n'existe pas ... c'est pourquoi excel te
renvoie
ce message, l'objet que tu référencies n'existe pas !

Tu peux corriger si tu le désires : Range("A" & i +1)


Salutations!



"txet" a écrit dans le message de news:
Bonjour,
Je viens de commencer a utiliser le VBA, je pensais que j'avais compris,
mais ça marche pas et je comprends pas quelle est mon erreur. Mon but, c'est
de faire une fonction qui prends les dates selectiones dans ma feuille excel,
regarde a les dates a cote (droite), fais un certain traitement et apres mets
le resultat dans le sheet2.
mom problemme c'est que quand je veux ecrire dans sheet2 je fais:

Worksheets("sheet2").Range("A" & i).Value = ocup

Et je obtiens un erreur type:
L'indice n'appartient pas a la selection
Je sais pas si l'erreur est dans cette ligne ou viens de plus loin, et tout
cas pour ecrire le recultat dans le meme feuille en utilisant
Cells(i,j)=ocup
j'ai pas des problemes.

Est-ce que quelqu'n a une idee de qu'est qui se passe?
Merci en advance, et desolee pour mon français.

J'ajoute tout mon code au cas ou

Sub ocupation()
Dim Cellule As Range
Dim h1, h2, taille_t As Integer
Dim taula() As Integer
Dim dd, d2, d1 As Date
Dim i, ocup

taille_t = 50
ReDim taula(taille_t + 1)
For i = 0 To taille_t
taula(i) = 0
i = i + 1
Next

dd = "01.01.2004"

For Each Cellule In Selection

h1 = DateDiff("h", dd, Cellule.Value)
h2 = DateDiff("h", dd, Cellule.Offset(0, 1).Value)

If taille_t < h2 Then
ReDim Preserve taula(h2 + 1)
For i = taille_t + 1 To h2
taula(i) = 0
'i = i + 1
Next
taille_t = h2
End If
taula(h1) = taula(h1) + 1
taula(h2) = taula(h2) - 1
Next

ocup = 0

For i = 0 To taille_t
ocup = ocup + taula(i)
Worksheets("sheet2").Range("A" & i).Value = ocup
Next

End Sub