OVH Cloud OVH Cloud

vbA, tirer des cellules ???

4 réponses
Avatar
LE TROLL
Bonsoir,

Maintenant que j'ai mon bouton, faut qu'il fasse quelque chose ce
bouton, "tirer des cellules", mais comment donc tirer des cellules ???
Voici ce qu'il faudrait (écrit schématiquement):

sub tire()
for i = 4 to 65534 (maxi-1)
if colonneA(i) = "" then exit for
TIRER --> colonne H à J ligne(i) dans = colonne H à J ligne(i+1)
next i
end sub

On tire les colonnes H à J de la ligne du dessus, à celle immédiatement en
dessous, ceci, de la ligne 4 à la ligne 65535 tant que la ligne d'origine
(test) colonne A est <> de ""
Je précise qu'ensuite ces 3 colonnes H à J, seront invisibles, mais je ne
pense pas que ça cause problème...

In fine, comment relier l'action sur le bouton à la nouvelle procédure ???
J'ai ça actuellement:

.OnAction = "Ce_que_fera_le_bouton"
(avec un With)

Si j'écris:
.OnAction = Call tire

Est-ce que c'est ok ??? Et après le OnAction, au retour, faut-il que je
débranche, ou que je laisse courir ???

Pour mémoire, ci-joint le total de la fonction concernée:

Merci beaucoup, au revoir et à bientôt :o)

Joe.
------------
LA FONCTION
Sub Worksheet_SelectionChange(ByVal Targuette As Range) ' HUGGY
Dim B As Object
Dim LastLine As Long
'
On Error Resume Next
LastLine = Range("A65536").End(xlUp).Row
If Not Intersect(Targuette, Columns("A")) Is Nothing Then
With Worksheets("Banque")
Set B = .CommandButton1
If Err <> 0 Then
Err = 0
Set B = .OLEObjects.Add(ClassType:="Forms.CommandButton.1")
With .CommandButton1
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Height = Targuette.RowHeight * 1.5
.Width = Targuette.Offset(, 1).Width
.OnAction = "Ce_que_fera_le_bouton" ' Nom dela macro attachée à
déterminer
End With
Else
With B
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Width = Targuette.Offset(, 1).Width
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Height = Targuette.RowHeight * 1.5
End With
End If
End With
End If
Set B = Nothing
End Sub

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !

4 réponses

Avatar
isabelle
bonjour joe,

écrit comme ca, la recopie sera arreté dès la première cellule vide rencontré en colonne A (exit for)
est ce à dire qu'il n'y a pas de cellule vide en colonne A, entre la première cellule renseignée et la dernière cellule
renseignée ?

isabelle


Bonsoir,

Maintenant que j'ai mon bouton, faut qu'il fasse quelque chose ce
bouton, "tirer des cellules", mais comment donc tirer des cellules ???
Voici ce qu'il faudrait (écrit schématiquement):

sub tire()
for i = 4 to 65534 (maxi-1)
if colonneA(i) = "" then exit for
TIRER --> colonne H à J ligne(i) dans = colonne H à J ligne(i+1)
next i
end sub

On tire les colonnes H à J de la ligne du dessus, à celle immédiatement en
dessous, ceci, de la ligne 4 à la ligne 65535 tant que la ligne d'origine
(test) colonne A est <> de ""
Je précise qu'ensuite ces 3 colonnes H à J, seront invisibles, mais je ne
pense pas que ça cause problème...

In fine, comment relier l'action sur le bouton à la nouvelle procédure ???
J'ai ça actuellement:

.OnAction = "Ce_que_fera_le_bouton"
(avec un With)

Si j'écris:
.OnAction = Call tire

Est-ce que c'est ok ??? Et après le OnAction, au retour, faut-il que je
débranche, ou que je laisse courir ???

Pour mémoire, ci-joint le total de la fonction concernée:

Merci beaucoup, au revoir et à bientôt :o)

Joe.
------------
LA FONCTION
Sub Worksheet_SelectionChange(ByVal Targuette As Range) ' HUGGY
Dim B As Object
Dim LastLine As Long
'
On Error Resume Next
LastLine = Range("A65536").End(xlUp).Row
If Not Intersect(Targuette, Columns("A")) Is Nothing Then
With Worksheets("Banque")
Set B = .CommandButton1
If Err <> 0 Then
Err = 0
Set B = .OLEObjects.Add(ClassType:="Forms.CommandButton.1")
With .CommandButton1
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Height = Targuette.RowHeight * 1.5
.Width = Targuette.Offset(, 1).Width
.OnAction = "Ce_que_fera_le_bouton" ' Nom dela macro attachée à
déterminer
End With
Else
With B
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Width = Targuette.Offset(, 1).Width
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Height = Targuette.RowHeight * 1.5
End With
End If
End With
End If
Set B = Nothing
End Sub

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !


Avatar
LE TROLL
Isabelle ma belle, lol,

Ben voui, quand A est vide on sort de la boucle :o) C'est à dire que A
est plein depuis le début (ligne 4), jusqu'à ce qu'il soit vide, on écrit au
fur (et à mesure), c'est un compte courant, donc on rajoute des écriture (on
peu supprimer et retasser aussi), et ensuite = calcul...
C'est aussi à dire pour te répondre (tu l'as bien compris, qu'il n'y a pas
de vide dans la plage, entre ligne A4 et ligne Ax)...

Mais sinon, t'aurais pas une réponse plus élaborée, heu... je demande ça
juste comme ça, car là j'ai pas de quoi tirer grand chose :o)

Joe.
----------

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

bonjour joe,

écrit comme ca, la recopie sera arreté dès la première cellule vide
rencontré en colonne A (exit for)
est ce à dire qu'il n'y a pas de cellule vide en colonne A, entre la
première cellule renseignée et la dernière cellule
renseignée ?

isabelle


Bonsoir,

Maintenant que j'ai mon bouton, faut qu'il fasse quelque chose ce
bouton, "tirer des cellules", mais comment donc tirer des cellules ???
Voici ce qu'il faudrait (écrit schématiquement):

sub tire()
for i = 4 to 65534 (maxi-1)
if colonneA(i) = "" then exit for
TIRER --> colonne H à J ligne(i) dans = colonne H à J ligne(i+1)
next i
end sub

On tire les colonnes H à J de la ligne du dessus, à celle immédiatement
en
dessous, ceci, de la ligne 4 à la ligne 65535 tant que la ligne d'origine
(test) colonne A est <> de ""
Je précise qu'ensuite ces 3 colonnes H à J, seront invisibles, mais je ne
pense pas que ça cause problème...

In fine, comment relier l'action sur le bouton à la nouvelle procédure
???
J'ai ça actuellement:

.OnAction = "Ce_que_fera_le_bouton"
(avec un With)

Si j'écris:
.OnAction = Call tire

Est-ce que c'est ok ??? Et après le OnAction, au retour, faut-il que je
débranche, ou que je laisse courir ???

Pour mémoire, ci-joint le total de la fonction concernée:

Merci beaucoup, au revoir et à bientôt :o)

Joe.
------------
LA FONCTION
Sub Worksheet_SelectionChange(ByVal Targuette As Range) ' HUGGY
Dim B As Object
Dim LastLine As Long
'
On Error Resume Next
LastLine = Range("A65536").End(xlUp).Row
If Not Intersect(Targuette, Columns("A")) Is Nothing Then
With Worksheets("Banque")
Set B = .CommandButton1
If Err <> 0 Then
Err = 0
Set B = .OLEObjects.Add(ClassType:="Forms.CommandButton.1")
With .CommandButton1
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Height = Targuette.RowHeight * 1.5
.Width = Targuette.Offset(, 1).Width
.OnAction = "Ce_que_fera_le_bouton" ' Nom dela macro attachée à
déterminer
End With
Else
With B
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Width = Targuette.Offset(, 1).Width
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Height = Targuette.RowHeight * 1.5
End With
End If
End With
End If
Set B = Nothing
End Sub

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !




Avatar
isabelle
re bonjour joe,

dans ce cas, nul besoin de boucle.

DerniereLigneColonneA = Range("A65536").End(xlUp).Row
Range("H4:J" & DerniereLigneColonneA).FillDown

isabelle


Isabelle ma belle, lol,

Ben voui, quand A est vide on sort de la boucle :o) C'est à dire que A
est plein depuis le début (ligne 4), jusqu'à ce qu'il soit vide, on écrit au
fur (et à mesure), c'est un compte courant, donc on rajoute des écriture (on
peu supprimer et retasser aussi), et ensuite = calcul...
C'est aussi à dire pour te répondre (tu l'as bien compris, qu'il n'y a pas
de vide dans la plage, entre ligne A4 et ligne Ax)...

Mais sinon, t'aurais pas une réponse plus élaborée, heu... je demande ça
juste comme ça, car là j'ai pas de quoi tirer grand chose :o)

Joe.
----------

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

bonjour joe,

écrit comme ca, la recopie sera arreté dès la première cellule vide
rencontré en colonne A (exit for)
est ce à dire qu'il n'y a pas de cellule vide en colonne A, entre la
première cellule renseignée et la dernière cellule
renseignée ?

isabelle


Bonsoir,

Maintenant que j'ai mon bouton, faut qu'il fasse quelque chose ce
bouton, "tirer des cellules", mais comment donc tirer des cellules ???
Voici ce qu'il faudrait (écrit schématiquement):

sub tire()
for i = 4 to 65534 (maxi-1)
if colonneA(i) = "" then exit for
TIRER --> colonne H à J ligne(i) dans = colonne H à J ligne(i+1)
next i
end sub

On tire les colonnes H à J de la ligne du dessus, à celle immédiatement
en
dessous, ceci, de la ligne 4 à la ligne 65535 tant que la ligne d'origine
(test) colonne A est <> de ""
Je précise qu'ensuite ces 3 colonnes H à J, seront invisibles, mais je ne
pense pas que ça cause problème...

In fine, comment relier l'action sur le bouton à la nouvelle procédure
???
J'ai ça actuellement:

.OnAction = "Ce_que_fera_le_bouton"
(avec un With)

Si j'écris:
.OnAction = Call tire

Est-ce que c'est ok ??? Et après le OnAction, au retour, faut-il que je
débranche, ou que je laisse courir ???

Pour mémoire, ci-joint le total de la fonction concernée:

Merci beaucoup, au revoir et à bientôt :o)

Joe.
------------
LA FONCTION
Sub Worksheet_SelectionChange(ByVal Targuette As Range) ' HUGGY
Dim B As Object
Dim LastLine As Long
'
On Error Resume Next
LastLine = Range("A65536").End(xlUp).Row
If Not Intersect(Targuette, Columns("A")) Is Nothing Then
With Worksheets("Banque")
Set B = .CommandButton1
If Err <> 0 Then
Err = 0
Set B = .OLEObjects.Add(ClassType:="Forms.CommandButton.1")
With .CommandButton1
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Height = Targuette.RowHeight * 1.5
.Width = Targuette.Offset(, 1).Width
.OnAction = "Ce_que_fera_le_bouton" ' Nom dela macro attachée à
déterminer
End With
Else
With B
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Width = Targuette.Offset(, 1).Width
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Height = Targuette.RowHeight * 1.5
End With
End If
End With
End If
Set B = Nothing
End Sub

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !






Avatar
isabelle
..à mettre dans la macro, bien évidemment.

Sub tire()
DerniereLigneColonneA = Range("A65536").End(xlUp).Row
Range("H4:J" & DerniereLigneColonneA).FillDown
End Sub

isabelle


Isabelle ma belle, lol,

Ben voui, quand A est vide on sort de la boucle :o) C'est à dire que A
est plein depuis le début (ligne 4), jusqu'à ce qu'il soit vide, on écrit au
fur (et à mesure), c'est un compte courant, donc on rajoute des écriture (on
peu supprimer et retasser aussi), et ensuite = calcul...
C'est aussi à dire pour te répondre (tu l'as bien compris, qu'il n'y a pas
de vide dans la plage, entre ligne A4 et ligne Ax)...

Mais sinon, t'aurais pas une réponse plus élaborée, heu... je demande ça
juste comme ça, car là j'ai pas de quoi tirer grand chose :o)

Joe.
----------

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

bonjour joe,

écrit comme ca, la recopie sera arreté dès la première cellule vide
rencontré en colonne A (exit for)
est ce à dire qu'il n'y a pas de cellule vide en colonne A, entre la
première cellule renseignée et la dernière cellule
renseignée ?

isabelle


Bonsoir,

Maintenant que j'ai mon bouton, faut qu'il fasse quelque chose ce
bouton, "tirer des cellules", mais comment donc tirer des cellules ???
Voici ce qu'il faudrait (écrit schématiquement):

sub tire()
for i = 4 to 65534 (maxi-1)
if colonneA(i) = "" then exit for
TIRER --> colonne H à J ligne(i) dans = colonne H à J ligne(i+1)
next i
end sub

On tire les colonnes H à J de la ligne du dessus, à celle immédiatement
en
dessous, ceci, de la ligne 4 à la ligne 65535 tant que la ligne d'origine
(test) colonne A est <> de ""
Je précise qu'ensuite ces 3 colonnes H à J, seront invisibles, mais je ne
pense pas que ça cause problème...

In fine, comment relier l'action sur le bouton à la nouvelle procédure
???
J'ai ça actuellement:

.OnAction = "Ce_que_fera_le_bouton"
(avec un With)

Si j'écris:
.OnAction = Call tire

Est-ce que c'est ok ??? Et après le OnAction, au retour, faut-il que je
débranche, ou que je laisse courir ???

Pour mémoire, ci-joint le total de la fonction concernée:

Merci beaucoup, au revoir et à bientôt :o)

Joe.
------------
LA FONCTION
Sub Worksheet_SelectionChange(ByVal Targuette As Range) ' HUGGY
Dim B As Object
Dim LastLine As Long
'
On Error Resume Next
LastLine = Range("A65536").End(xlUp).Row
If Not Intersect(Targuette, Columns("A")) Is Nothing Then
With Worksheets("Banque")
Set B = .CommandButton1
If Err <> 0 Then
Err = 0
Set B = .OLEObjects.Add(ClassType:="Forms.CommandButton.1")
With .CommandButton1
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Height = Targuette.RowHeight * 1.5
.Width = Targuette.Offset(, 1).Width
.OnAction = "Ce_que_fera_le_bouton" ' Nom dela macro attachée à
déterminer
End With
Else
With B
.Top = Range("K" & LastLine).Top
.Left = Range("K" & LastLine).Left
.Width = Targuette.Offset(, 1).Width
.BackColor = &H80FF80
.FontName = "arial"
.FontSize = 8
.FontBold = True
.Caption = "SOLDE"
.Height = Targuette.RowHeight * 1.5
End With
End If
End With
End If
Set B = Nothing
End Sub

--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !