OVH Cloud OVH Cloud

Question vocabulaire VBA (row, range, etc...)

4 réponses
Avatar
laure
Bonjour, ou bonsoir !

Dans une macro j'ai la séquence suivante :

num = Sheets("CALENDRIER").Range("B65536").End(xlUp).Row + 1

Range("B" & num).Value = tache.Value
Range("C" & num).Value = CDate(debut.Value)
Range("D" & num).Value = duree.Value


J'ai transposé mon calendrier et je voudrais qu'il recherche la première
cellule libre sur la ligne 12 et qu'il inscrive les valeurs en descendant la
colonne...

Bref tout ce qui est horizontal devient vertical et vice-versa...
Je pense que ça doit être simple, mais disons que je manque de vocabulaire
!!

Grand merci d'avance à qui pourra m'aider...

Laure

4 réponses

Avatar
Rai
Bonjour,
De tête, et sans XL, ni filets ;o))

num = Sheets("CALENDRIER").Range("UV12").End(xlLeft).Column + 1

Cells(12,num).Value = tache.Value
Cells(13,num).Value = CDate(debut.Value)
Cells(14, num).Value = duree.Value

Si j'ai bien compris (pas encore eu mon 1er café ce matin), tu veux récupérer les valeurs en ligne 12, 13 & 14 de la colonne désignée par num ?

Bon dimanche

Rai

"laure" a écrit dans le message de news: 41f2d271$0$31807$
Bonjour, ou bonsoir !

Dans une macro j'ai la séquence suivante :

num = Sheets("CALENDRIER").Range("B65536").End(xlUp).Row + 1

Range("B" & num).Value = tache.Value
Range("C" & num).Value = CDate(debut.Value)
Range("D" & num).Value = duree.Value


J'ai transposé mon calendrier et je voudrais qu'il recherche la première
cellule libre sur la ligne 12 et qu'il inscrive les valeurs en descendant la
colonne...

Bref tout ce qui est horizontal devient vertical et vice-versa...
Je pense que ça doit être simple, mais disons que je manque de vocabulaire
!!

Grand merci d'avance à qui pourra m'aider...

Laure




Avatar
laure
Merci Rai pour ta réponse !

Malheureusement ça ne fonctionne pas :-(

Je vous donne le code dans son entier :
_______________________________________________
Private Sub Valider_Click()
If Etude.Value = "" Then
MsgBox ("Il faut donner un nom à cette Etude !")
Exit Sub

End If

If DebutTer.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
Else
MaDate = CDate(DebutTer.Value)
End If

If dureeTer.Value = "" Then
MsgBox ("Il faut indiquer une durée en jours !")
Exit Sub
End If


If DebutDon.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
End If

If RetourTris.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
End If

If Presentation.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
End If

num = Sheets("CALENDRIER").Range("IV12").End(xlLeft).Column + 1

Cells(12, num).Value = Etude.Value
Cells(13, num).Value = CDate(DebutTer.Value)
Cells(14, num).Value = dureeTer.Value
Cells(15, num).Value = DebutDon.Value
Cells(16, num).Value = RetourTris.Value
Cells(17, num).Value = Presentation.Value

Unload NlleTache
NlleTache.Show
End Sub
________________________________________________


Le bug s'arrête sur la ligne :
num = Sheets("CALENDRIER").Range("IV12").End(xlLeft).Column + 1

C'est frustant ! :-S

Merci d'avance pour toute aide...
Laure


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

Bonjour,
De tête, et sans XL, ni filets ;o))

num = Sheets("CALENDRIER").Range("UV12").End(xlLeft).Column + 1

Cells(12,num).Value = tache.Value
Cells(13,num).Value = CDate(debut.Value)
Cells(14, num).Value = duree.Value

Si j'ai bien compris (pas encore eu mon 1er café ce matin), tu veux
récupérer les valeurs en ligne 12, 13 & 14 de la colonne désignée par num ?

Bon dimanche

Rai

"laure" a écrit dans le message de news:
41f2d271$0$31807$
Bonjour, ou bonsoir !

Dans une macro j'ai la séquence suivante :

num = Sheets("CALENDRIER").Range("B65536").End(xlUp).Row + 1

Range("B" & num).Value = tache.Value
Range("C" & num).Value = CDate(debut.Value)
Range("D" & num).Value = duree.Value


J'ai transposé mon calendrier et je voudrais qu'il recherche la première
cellule libre sur la ligne 12 et qu'il inscrive les valeurs en descendant
la
colonne...

Bref tout ce qui est horizontal devient vertical et vice-versa...
Je pense que ça doit être simple, mais disons que je manque de vocabulaire
!!

Grand merci d'avance à qui pourra m'aider...

Laure




Avatar
Rai
re-bonjour Laure,

Comme je te l'écrivais, c'était avant mon 1er café du matin que je t'ai répondu.

dans la ligne :
num = Sheets("CALENDRIER").Range("UV12").End(xlLeft).Column + 1

remplace xlLeft par xlToLeft

ça donnera
num = Sheets("CALENDRIER").Range("UV12").End(xlToLeft).Column + 1

et il n'y aura plus d'erreur (au moins à cet endroit là).

Bonne conitnuation

Rai

"laure" a écrit dans le message de news: 41f3a550$0$19401$
Merci Rai pour ta réponse !

Malheureusement ça ne fonctionne pas :-(

Je vous donne le code dans son entier :
_______________________________________________
Private Sub Valider_Click()
If Etude.Value = "" Then
MsgBox ("Il faut donner un nom à cette Etude !")
Exit Sub

End If

If DebutTer.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
Else
MaDate = CDate(DebutTer.Value)
End If

If dureeTer.Value = "" Then
MsgBox ("Il faut indiquer une durée en jours !")
Exit Sub
End If


If DebutDon.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
End If

If RetourTris.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
End If

If Presentation.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
End If

num = Sheets("CALENDRIER").Range("IV12").End(xlLeft).Column + 1

Cells(12, num).Value = Etude.Value
Cells(13, num).Value = CDate(DebutTer.Value)
Cells(14, num).Value = dureeTer.Value
Cells(15, num).Value = DebutDon.Value
Cells(16, num).Value = RetourTris.Value
Cells(17, num).Value = Presentation.Value

Unload NlleTache
NlleTache.Show
End Sub
________________________________________________


Le bug s'arrête sur la ligne :
num = Sheets("CALENDRIER").Range("IV12").End(xlLeft).Column + 1

C'est frustant ! :-S

Merci d'avance pour toute aide...
Laure


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

Bonjour,
De tête, et sans XL, ni filets ;o))

num = Sheets("CALENDRIER").Range("UV12").End(xlLeft).Column + 1

Cells(12,num).Value = tache.Value
Cells(13,num).Value = CDate(debut.Value)
Cells(14, num).Value = duree.Value

Si j'ai bien compris (pas encore eu mon 1er café ce matin), tu veux
récupérer les valeurs en ligne 12, 13 & 14 de la colonne désignée par num ?

Bon dimanche

Rai

"laure" a écrit dans le message de news:
41f2d271$0$31807$
Bonjour, ou bonsoir !

Dans une macro j'ai la séquence suivante :

num = Sheets("CALENDRIER").Range("B65536").End(xlUp).Row + 1

Range("B" & num).Value = tache.Value
Range("C" & num).Value = CDate(debut.Value)
Range("D" & num).Value = duree.Value


J'ai transposé mon calendrier et je voudrais qu'il recherche la première
cellule libre sur la ligne 12 et qu'il inscrive les valeurs en descendant
la
colonne...

Bref tout ce qui est horizontal devient vertical et vice-versa...
Je pense que ça doit être simple, mais disons que je manque de vocabulaire
!!

Grand merci d'avance à qui pourra m'aider...

Laure








Avatar
laure
Grand merci Rai !!
Cela fonctionne maintenant :-)))))

et pour le café, du sucre ? du lait ? ou bien noir ?

Allez, je nous fait chauffer deux tasses !! ;)
Et merci encore !

"Rai" a écrit dans le message de news:
%
re-bonjour Laure,

Comme je te l'écrivais, c'était avant mon 1er café du matin que je t'ai
répondu.

dans la ligne :
num = Sheets("CALENDRIER").Range("UV12").End(xlLeft).Column + 1

remplace xlLeft par xlToLeft

ça donnera
num = Sheets("CALENDRIER").Range("UV12").End(xlToLeft).Column + 1

et il n'y aura plus d'erreur (au moins à cet endroit là).

Bonne conitnuation

Rai

"laure" a écrit dans le message de news:
41f3a550$0$19401$
Merci Rai pour ta réponse !

Malheureusement ça ne fonctionne pas :-(

Je vous donne le code dans son entier :
_______________________________________________
Private Sub Valider_Click()
If Etude.Value = "" Then
MsgBox ("Il faut donner un nom à cette Etude !")
Exit Sub

End If

If DebutTer.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
Else
MaDate = CDate(DebutTer.Value)
End If

If dureeTer.Value = "" Then
MsgBox ("Il faut indiquer une durée en jours !")
Exit Sub
End If


If DebutDon.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
End If

If RetourTris.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
End If

If Presentation.Value = "" Then
MsgBox ("Il faut indiquer une date !")
Exit Sub
End If

num = Sheets("CALENDRIER").Range("IV12").End(xlLeft).Column + 1

Cells(12, num).Value = Etude.Value
Cells(13, num).Value = CDate(DebutTer.Value)
Cells(14, num).Value = dureeTer.Value
Cells(15, num).Value = DebutDon.Value
Cells(16, num).Value = RetourTris.Value
Cells(17, num).Value = Presentation.Value

Unload NlleTache
NlleTache.Show
End Sub
________________________________________________


Le bug s'arrête sur la ligne :
num = Sheets("CALENDRIER").Range("IV12").End(xlLeft).Column + 1

C'est frustant ! :-S

Merci d'avance pour toute aide...
Laure


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

Bonjour,
De tête, et sans XL, ni filets ;o))

num = Sheets("CALENDRIER").Range("UV12").End(xlLeft).Column + 1

Cells(12,num).Value = tache.Value
Cells(13,num).Value = CDate(debut.Value)
Cells(14, num).Value = duree.Value

Si j'ai bien compris (pas encore eu mon 1er café ce matin), tu veux
récupérer les valeurs en ligne 12, 13 & 14 de la colonne désignée par num
?

Bon dimanche

Rai

"laure" a écrit dans le message de news:
41f2d271$0$31807$
Bonjour, ou bonsoir !

Dans une macro j'ai la séquence suivante :

num = Sheets("CALENDRIER").Range("B65536").End(xlUp).Row + 1

Range("B" & num).Value = tache.Value
Range("C" & num).Value = CDate(debut.Value)
Range("D" & num).Value = duree.Value


J'ai transposé mon calendrier et je voudrais qu'il recherche la première
cellule libre sur la ligne 12 et qu'il inscrive les valeurs en descendant
la
colonne...

Bref tout ce qui est horizontal devient vertical et vice-versa...
Je pense que ça doit être simple, mais disons que je manque de
vocabulaire
!!

Grand merci d'avance à qui pourra m'aider...

Laure