8 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Pour commencer, enregistre une macro pendant que tu fais à la main les manipulations que tu veux automatiser.
merci pour ta réponse c'est bien ce que j'ai fait!
en fait pourrais tu me dire comment je peux renvoyer la dernière ligne non vide (et/ou la dernière cellule non vide)
merci
en fait pourrais tu me dire comment je peux renvoyer la dernière ligne non vide (et/ou la dernière cellule non vide)
merci
Bonjour
merci pour ta réponse
Sheets("Moyenne1").Activate
Rows("6:700").Select
Selection.Copy
Sheets("Copie temp1").Activate
Rows("1:1").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
ActiveWorkbook.Save
Sheets("Copie temp1").Activate
Range("A1").Select
Selection.Columns.AutoFit
Range("A1:I22").Select ' il faut remplacer I22 par la dernière cellule non vide
En fait le tableau ci dessus est variant , c'est un tableau croisé dynamique
dans l'exemple ci dessus c'est I22 la dernière cellule pleine mais si je change certains paramètre elle sera plus I22
c'est pour que je veux faire un code avec une commande qui me permet de savoir la dernière cellule non vide
Merci!
merci pour ta réponse
Sheets("Moyenne1").Activate
Rows("6:700").Select
Selection.Copy
Sheets("Copie temp1").Activate
Rows("1:1").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
ActiveWorkbook.Save
Sheets("Copie temp1").Activate
Range("A1").Select
Selection.Columns.AutoFit
Range("A1:I22").Select ' il faut remplacer I22 par la dernière cellule non vide
En fait le tableau ci dessus est variant , c'est un tableau croisé dynamique
dans l'exemple ci dessus c'est I22 la dernière cellule pleine mais si je change certains paramètre elle sera plus I22
c'est pour que je veux faire un code avec une commande qui me permet de savoir la dernière cellule non vide
Merci!
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Au lieu de la ligne Range("A1:I22").Select ' il faut remplacer I22 par la dernière cellule non vide
ajoute le code suivant :
Dim icol As Integer, irow As Integer
irow = 1
icol = 1
Do While Cells(irow + 1, 1) <> ""
irow = irow + 1
Loop
Do While Cells(1, icol + 1) <> ""
icol = icol + 1
Loop
Range(Cells(1, 1), Cells(irow, icol)).Select
End Sub
ajoute le code suivant :
Dim icol As Integer, irow As Integer
irow = 1
icol = 1
Do While Cells(irow + 1, 1) <> ""
irow = irow + 1
Loop
Do While Cells(1, icol + 1) <> ""
icol = icol + 1
Loop
Range(Cells(1, 1), Cells(irow, icol)).Select
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merci pour ta réponse!
en fait j'ai inséré la lign e quivante dans mon code
NbrLig3 = Sheets("Copie temp2").Cells(65536, Col).End(xlUp).Row
et il me renvoit lerreur suivante :
lindice n'apartient pas à la collection
Merci!
en fait j'ai inséré la lign e quivante dans mon code
NbrLig3 = Sheets("Copie temp2").Cells(65536, Col).End(xlUp).Row
et il me renvoit lerreur suivante :
lindice n'apartient pas à la collection
Merci!
merci pr ta réponse c'est très très gentil
en fait jai fait la macro ci dessus dans le classeur "Copie temp2"
Sub calcul()
Dim NbrLig3 As Long
cel1 = Application.Intersect(Range("B1:B100"), Range("A4:P4"))
cel2 = Application.Intersect(Range("B1:B100"), Range("A6:P6"))
cel3 = Application.Intersect(Range("B1:B100"), Range("A7:P7"))
cel4 = Application.Intersect(Range("B1:B100"), Range("A9:P9"))
NbrLig3 = Sheets("Copie temp2").Cells(65536, 1).End(xlUp).Row
Rows(NbrLig3).Select
ActiveWorkbook.Names.Add Name:="lig", RefersToR1C1:="='Copie temp2'! R&NbrLig3"
Set isect1 = Application.Intersect(Range("B1:B100"), Range("lig"))
End Sub
elle me renvoi une erreur à la ligne
Set isect1 = Application.Intersect(Range("B1:B100"), Range("lig"))
comme quoi la méthode range ne marche pas
en fait je pense que cela est dû à ma variable lig
en fait lig est le nom d'une ligne grace à la ligne suivante
ActiveWorkbook.Names.Add Name:="lig", RefersToR1C1:="='Copie temp2'! R&NbrLig3"
Merci et à bientot!
bonne journée
en fait jai fait la macro ci dessus dans le classeur "Copie temp2"
Sub calcul()
Dim NbrLig3 As Long
cel1 = Application.Intersect(Range("B1:B100"), Range("A4:P4"))
cel2 = Application.Intersect(Range("B1:B100"), Range("A6:P6"))
cel3 = Application.Intersect(Range("B1:B100"), Range("A7:P7"))
cel4 = Application.Intersect(Range("B1:B100"), Range("A9:P9"))
NbrLig3 = Sheets("Copie temp2").Cells(65536, 1).End(xlUp).Row
Rows(NbrLig3).Select
ActiveWorkbook.Names.Add Name:="lig", RefersToR1C1:="='Copie temp2'! R&NbrLig3"
Set isect1 = Application.Intersect(Range("B1:B100"), Range("lig"))
End Sub
elle me renvoi une erreur à la ligne
Set isect1 = Application.Intersect(Range("B1:B100"), Range("lig"))
comme quoi la méthode range ne marche pas
en fait je pense que cela est dû à ma variable lig
en fait lig est le nom d'une ligne grace à la ligne suivante
ActiveWorkbook.Names.Add Name:="lig", RefersToR1C1:="='Copie temp2'! R&NbrLig3"
Merci et à bientot!
bonne journée
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
set isect1=cell(nbrlig3,2)
merci bcp pour la réponse
jai fais un long tour alors que cette ligne me permet de faire ce que je voulais :-)
en fait jai un autre pb
Sub Macro24()
'
' Macro24 Macro
' Macro enregistrée le 23/06/2008 par LEMSSOUGUER Nadia
'
'
Dim i As Integer
For i = 1 To 20
If (Cells(i, 1).Value = "Assignée" Or "Corrigée" Or "Livrée" Or "Prise en charge") Then
Cells(i, 1).Activate
With Selection.Interior
.ColorIndex = 7
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End If
Next i
End Sub
il me renvoit une erreur comme quoi les types de la ligne
If (Cells(i, 1).Value = "Assignée" Or "Corrigée" Or "Livrée" Or "Prise en charge")
sont incompatibles
je voudrais savoir comment je pourrais corriger cette faute!
Merci
@+
jai fais un long tour alors que cette ligne me permet de faire ce que je voulais :-)
en fait jai un autre pb
Sub Macro24()
'
' Macro24 Macro
' Macro enregistrée le 23/06/2008 par LEMSSOUGUER Nadia
'
'
Dim i As Integer
For i = 1 To 20
If (Cells(i, 1).Value = "Assignée" Or "Corrigée" Or "Livrée" Or "Prise en charge") Then
Cells(i, 1).Activate
With Selection.Interior
.ColorIndex = 7
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End If
Next i
End Sub
il me renvoit une erreur comme quoi les types de la ligne
If (Cells(i, 1).Value = "Assignée" Or "Corrigée" Or "Livrée" Or "Prise en charge")
sont incompatibles
je voudrais savoir comment je pourrais corriger cette faute!
Merci
@+
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
il faut plutot faire ainsi :
If (Cells(i, 1).Value = "Assignée") Or (Cells(i, 1).Value ="Corrigée") Or (Cells(i, 1).Value ="Livrée") Or (Cells(i, 1).Value ="Prise en charge") )
If (Cells(i, 1).Value = "Assignée") Or (Cells(i, 1).Value ="Corrigée") Or (Cells(i, 1).Value ="Livrée") Or (Cells(i, 1).Value ="Prise en charge") )