Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ajout de ligne via vba selon les dates

10 réponses
Avatar
Marc
Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc

10 réponses

Avatar
Philippe.R
Bonjour Marc,
Le code que tu publies dans ton message et qui règle la hauteur des lignes
de ta plage peut aussi s'écrire :

Sub hlig()
Dim deRLig As Long
deRLig = Range("b789").End(xlUp).Row
Range("b3:b" & deRLig).RowHeight = 30.75
End Sub

pour ton souci, l'important est de bien placer le calcul ou recalcul de la
dernière ligne du tableau
--
Avec plaisir
Philippe.R
"Marc" a écrit dans le message de
news:
Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates
je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé
un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin
des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont
ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je
voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc




Avatar
Marc
merci Philippe

pour les lignes
je ne comprend pas, de ce que tu veux dire par calcule ou recalcul




Bonjour Marc,
Le code que tu publies dans ton message et qui règle la hauteur des lignes
de ta plage peut aussi s'écrire :

Sub hlig()
Dim deRLig As Long
deRLig = Range("b789").End(xlUp).Row
Range("b3:b" & deRLig).RowHeight = 30.75
End Sub

pour ton souci, l'important est de bien placer le calcul ou recalcul de la
dernière ligne du tableau
--
Avec plaisir
Philippe.R
"Marc" a écrit dans le message de
news:
Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates
je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé
un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin
des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont
ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je
voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc








Avatar
Marc
j'ai oublié de vous dire qu'il a beaucoup de code en vba et si je sors de la
plage de donnée le programme me donne une erreur
c'est pour ca que je dois faire atention a ma plage


Bonjour Marc,
Le code que tu publies dans ton message et qui règle la hauteur des lignes
de ta plage peut aussi s'écrire :

Sub hlig()
Dim deRLig As Long
deRLig = Range("b789").End(xlUp).Row
Range("b3:b" & deRLig).RowHeight = 30.75
End Sub

pour ton souci, l'important est de bien placer le calcul ou recalcul de la
dernière ligne du tableau
--
Avec plaisir
Philippe.R
"Marc" a écrit dans le message de
news:
Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates
je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé
un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin
des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont
ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je
voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc








Avatar
Philippe.R
Re,
Dans le cas d'ajout de ligne en cours d'exécution de macros, il convient de
rafraîchir la valeur de la variable correspondant à la dernière ligne de la
plage (deRLig dans l'exemple que je t'ai fourni), donc de la recalculer en
répétant :

deRLig = Range("b789").End(xlUp).Row
--
Avec plaisir
Philippe.R
"Marc" a écrit dans le message de
news:
merci Philippe

pour les lignes
je ne comprend pas, de ce que tu veux dire par calcule ou recalcul




Bonjour Marc,
Le code que tu publies dans ton message et qui règle la hauteur des
lignes
de ta plage peut aussi s'écrire :

Sub hlig()
Dim deRLig As Long
deRLig = Range("b789").End(xlUp).Row
Range("b3:b" & deRLig).RowHeight = 30.75
End Sub

pour ton souci, l'important est de bien placer le calcul ou recalcul de
la
dernière ligne du tableau
--
Avec plaisir
Philippe.R
"Marc" a écrit dans le message de
news:
Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les
dates
je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai
placé
un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin
des
lignes. du au fait que je fais une boucle pour vérifier toutes mes
lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté
exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont
ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je
voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc










Avatar
LSteph
Bonjour,
pour éviter le problème qd on supprime ou insère
boucler de bas en haut
step-1

mais pour y voir plus clair il faudrait que tu donne le code complet
car sur ce seul extrait je comprends pas bien où et comment sont
définies les compteur2 ligne6
et ce que vient faire cet xlsheet ni où finit et ce qui suit dans la
boucle.
D'ailleurs on ne voit pas non plus .insert donc où insère tu la ligne
Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

...

lSteph

Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc




Avatar
Marc
voilà je te donne le code que je fais l'ajout d'une ligne

Sub InsertRowsAndFillFormulas_caller()
Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row
MaLigne4 = ("d" & Compteur2)
C = Range(MaLigne4).Value
myWeekDay = C
myWeekDay = Format(myWeekDay, "dddd")
Select Case myWeekDay
Case "lundi"
If Range("d" & Compteur2 - 1).Value < Range("d" &
Compteur2).Value - 6 Then
If Range("b" & Compteur2 - 1).Value <> 1 Then
If Range("b" & Compteur2).Value <> 1 Then
Call InsertRows
Else
If Range("b" & Compteur2).Value = 1 Then
Range(Cells(ActiveCell.Row, 1),
Cells(ActiveCell.Row, 9)).Select
Selection.Interior.ColorIndex = 1
Selection.RowHeight = 4
Else
Selection.Rows.AutoFit
End If

End If
End If
End If
Case "mardi"
If Range("d" & Compteur2 - 1).Value < Range("d" &
Compteur2).Value - 6 Then
If Range("b" & Compteur2 - 1).Value <> 1 Then
If Range("b" & Compteur2).Value <> 1 Then
Call InsertRows
Else
If Range("b" & Compteur2).Value = 1 Then
Range(Cells(ActiveCell.Row, 1),
Cells(ActiveCell.Row, 9)).Select
Selection.Interior.ColorIndex = 1
Selection.RowHeight = 4
Else
Selection.Rows.AutoFit
End If

End If
End If
End If
Case "mercredi"
If Range("d" & Compteur2 - 1).Value < Range("d" &
Compteur2).Value - 6 Then

If Range("b" & Compteur2 - 1).Value <> 1 Then
If Range("b" & Compteur2).Value <> 1 Then
Call InsertRows
Else
If Range("b" & Compteur2).Value = 1 Then
Range(Cells(ActiveCell.Row, 1),
Cells(ActiveCell.Row, 9)).Select
Selection.Interior.ColorIndex = 1
Selection.RowHeight = 4
Else
Selection.Rows.AutoFit
End If

End If
End If
End If
Case "jeudi"
If Range("d" & Compteur2 - 1).Value < Range("d" &
Compteur2).Value - 6 Then
If Range("b" & Compteur2 - 1).Value <> 1 Then
If Range("b" & Compteur2).Value <> 1 Then
Call InsertRows
Else
If Range("b" & Compteur2).Value = 1 Then
Range(Cells(ActiveCell.Row, 1),
Cells(ActiveCell.Row, 9)).Select
Selection.Interior.ColorIndex = 1
Selection.RowHeight = 4
Else
Selection.Rows.AutoFit
End If

End If
End If
End If
Case "vendredi"
If Range("d" & Compteur2 - 1).Value < Range("d" &
Compteur2).Value - 6 Then
If Range("b" & Compteur2 - 1).Value <> 1 Then
If Range("b" & Compteur2).Value <> 1 Then
Call InsertRows
Else
If Range("b" & Compteur2).Value = 1 Then
Range(Cells(ActiveCell.Row, 1),
Cells(ActiveCell.Row, 9)).Select
Selection.Interior.ColorIndex = 1
Selection.RowHeight = 4
Else
Selection.Rows.AutoFit
End If

End If
End If
End If
End Select
' If myWeekDay = "lundi" Then
' If Range("d" & Compteur2).Row <> "3" Then
'
' If Range("b" & Compteur2 - 1).Value <> 1 Then
' If Range("b" & Compteur2).Value <> 1 Then
' Call InsertRows
' Else
' If Range("b" & Compteur2).Value = 1 Then
' Range(Cells(ActiveCell.Row, 1),
Cells(ActiveCell.Row, 9)).Select
' Selection.Interior.ColorIndex = 1
'' Selection.RowHeight = 4
' Else
' Selection.Rows.AutoFit
' End If
'
' End If
' End If
' End If
' End If
' If myWeekDay = "monday" Then
' If Range("d" & Compteur2).Row <> "3" Then
' If Range("b" & Compteur2 - 1).Value <> 1 Then
' If Range("b" & Compteur2).Value <> 1 Then
' Call InsertRows
' End If
' End If
' End If
'
' End If

Next Compteur2

End Sub


Sub InsertRows(Optional vRows As Long = 1)

Dim x As Long
If Range("d" & Compteur2).Value = Range("d" & Compteur2 - 1).Value Then
' Selection.RowHeight = 4
Exit Sub
Else
ActiveCell.EntireRow.Select

Dim sht As Worksheet, shts() As String, i As Long
ReDim shts(1 To Worksheets.Application.ActiveWorkbook. _
Windows(1).SelectedSheets.Count)
i = 0
For Each sht In _
Application.ActiveWorkbook.Windows(1).SelectedSheets
Sheets(sht.Name).Select
i = i + 1
shts(i) = sht.Name

x = Sheets(sht.Name).UsedRange.Rows.Count
Selection.Copy
Selection.Insert Shift:=xlUp
Selection.RowHeight = 4
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 9)).Select
Selection.Interior.ColorIndex = 1
Selection.Font.ColorIndex = 1

On Error Resume Next
Range("b" & Compteur2).Value = 1
Range("f" & Compteur2).Value = ligne
Compteur2 = (Compteur2 + 1)
MaLigne6 = MaLigne6 + 1
gstrAdd = Compteur2
Next sht
Worksheets(shts).Select
End If
End Sub




Bonjour,
pour éviter le problème qd on supprime ou insère
boucler de bas en haut
step-1

mais pour y voir plus clair il faudrait que tu donne le code complet
car sur ce seul extrait je comprends pas bien où et comment sont
définies les compteur2 ligne6
et ce que vient faire cet xlsheet ni où finit et ce qui suit dans la
boucle.
D'ailleurs on ne voit pas non plus .insert donc où insère tu la ligne
Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

....

lSteph

Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc







Avatar
MichDenis
Il y a aussi ceci :

http://cjoint.com/?jdeW1vBczy




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

Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc
Avatar
MichDenis
La commande SendKeys "~" est à supprimer
dans la procédure NCommandComment
c'est un résidu oblié de la procédure originel.



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

Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc
Avatar
MichDenis
Erreur d'aiguillage !



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

La commande SendKeys "~" est à supprimer
dans la procédure NCommandComment
c'est un résidu oblié de la procédure originel.



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

Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc
Avatar
Marc
je te fait parvenir le fichier au complet
http://cjoint.com/?jdpsyk6ADj


Il y a aussi ceci :

http://cjoint.com/?jdeW1vBczy




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

Bonjour a tous.....

voilà mon problème, j'ai un fichier excel qui fonctionne selon les dates je
veux qui sépare a tous les semaine (pour ca ca va.... sauf que j'ai placé un
point d'arrêt (MaLigne6 = Range("b3").End(xlDown).Address) pour que mon
fichier ne se rend pas a 655... quelques ligne mais qui arrête a la fin des
lignes. du au fait que je fais une boucle pour vérifier toutes mes lignes
quand il arrive a la fin de le string (maligne6), si il a ajouté exemple 3
lignes et que la fin est a range b25 au début et que 3 lignes ce sont ajouté
il devrait être range b28 mais il arrête pareil a range b25 donc je voudrais
savoir quoi faire pour changé ma string avec la nouvelle adresse

voici un bout de code

Dim xlSheet As Excel.Worksheet
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row

For Compteur2 = 3 To MaLigne6 Step 1
Range(Compteur2 & ":" & Compteur2).Select
Selection.RowHeight = 30.75
MaLigne6 = Range("b3").End(xlDown).Address
MaLigne6 = Range(MaLigne6).Row


merci a l'avance


Marc