Forum Discussion
macro VBA excel nommer une cellule
- Oct 16, 2022
Peut-être:
Dim s As String Dim reto As Range Set reto = Selection Do s = InputBox("Scannez le document, puis cliquez sur 'OK'; en fin de série, cliquez sur OK! ", " Enregistrement du retour ") If s = "" Then Exit Do Application.Goto Reference:="codbarretour" Do While ActiveCell > 0 ActiveCell.Offset(1, 0).Activate Loop reto.Select reto.Formula = s ActiveCell.Offset(0, 10).Activate Range(ActiveCell, Range("chrono")).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues ActiveCell.Offset(0, -12).Activate Loop
---------------
Sub inserer_ligne_vb()
'
' inserer_ligne_vb Macro
' insère une ou plusieurs lignes dans le tableau
'
'
Dim s As String
s = InputBox("Indiquez le nombre de lignes à insérer: de 1 à 3.", " Insertion")
If s > 3 Then
MsgBox "Nombre de lignes trop important (3 max)!"
Exit Sub
End If
Dim j As String
j = InputBox("Indiquez le jour d'insertion.", " Jour d'insertion")
Range("A14").Select
Do While ActiveCell.Value < j
ActiveCell.Offset(1, 0).Activate
Loop
End Sub
------------------
J'attribue à s la valeur 1, puis à j : 20.
Mais la macro s'arrête au 4 (qui est la valeur immédiatement supérieure à s, donc à 1, dans mon tableau).
On dirait que j n'a pas été pris en compte?
s et j devraient être nombres, pas texte. Changez
Dim s As String
et
Dim j As String
à
Dim s As Long
et
Dim j As Long
- bernard_daniel_1950Oct 28, 2022Iron ContributorMerci!
Pas facile de passer de 30 ans de xlm4 à vba! - bernard_daniel_1950Oct 31, 2022Iron Contributor
Bonsoir, une nouvelle fois, je sollicite votre sagacité pour une macro qui me hante. Voici un tableau, de la colonne FS à FY; FZ étant quelque chose que j'ai rajouté.
Les lignes vides correspondent à des enregistrements de la journée, mais qui n'ont pas donné lieu à paiement.
Je souhaiterais compacter ce tableau pour ne faire apparaître que les lignes "payantes".
J'ai imaginé une boucle qui utilise la colonne FZ pour sélectionner la ligne de tableau remplissant le critère, la copie et la colle dans un autre tableau, à la première ligne vide.
mais, ensuite, je ne sais pas comment faire pour la seconde ligne!
Je pense qu'il faut deux boucles imbriquées?
-----------------
Sub imprjourecet_vb()
'
' imprjourecet_vb Macro
' mettre en forme et imprimer le journal de recette
''
Range("FZ14").Select
Do While ActiveCell = 0
ActiveCell.Offset(1, 0).Activate
Loop
ActiveCell.Offset(0, -14).Select
Range(ActiveCell, ActiveCell.Offset(0, 6)).Select
Selection.Copy
End Sub-------------------
FS
FT
FU
FV
FW
FX
FY
FZ
DATE
ESPECES
CHEQUE
CB
TOTAL JOUR
ABONNEMENTS
IMPRESSIONS
1
20,00 €
20
1
0
1
2,60 €
2,6
1
0
1
20,00 €
20
1
20,00 €
20
1
20,00 €
20
1
0
1
0
1
0
1
20,00 €
20
1
0,20 €
0,2
1
0
1
0
1
20,00 €
20
1
0,40 €
0,4
1
1,20 €
124,40 €
120,00 €
4,40 €
250
4
0,20 €
0,2
Je sais le faire en XLM4, mais pas là!
D'avance, merci!
- HansVogelaarOct 31, 2022MVP
Essayez
Sub CopierLignesNonVides() Const LignePremiere = 14 Const ColonneSource = "FZ" Const ColonneDestination = "FL" Dim LigneSource As Long Dim LigneDerniere As Long Dim LigneDestination As Long Application.ScreenUpdating = False LigneDestination = LignePremiere LigneDerniere = Cells(Rows.Count, ColonneSource).End(xlUp).Row For LigneSource = LignePremiere To LigneDerniere If Cells(LigneSource, ColonneSource).Value > 0 Then Cells(LigneDestination, ColonneDestination).Resize(1, 7).Value = _ Cells(LigneSource, ColonneSource).Offset(0, -7).Resize(1, 7).Value LigneDestination = LigneDestination + 1 End If Next LigneSource Application.ScreenUpdating = True End Sub
- bernard_daniel_1950Nov 01, 2022Iron ContributorOutch!
Le méprisable vermisseau que je suis se terre dans la boue de son ignorance crasse! - HansVogelaarNov 01, 2022MVP
Ce n'est pas si grave! 🙂
- bernard_daniel_1950Nov 07, 2022Iron ContributorBonsoir, encore une (pour la route!):
J'ai écrit:
-----------------
Application.ScreenUpdating = True
ActiveCell.Offset(0, -25).Activate
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5756927
.TintAndShade = 0
End With
If MsgBox("Ce nom correspond-t-il à votre recherche? si non, cliquez sur non pour continuer!", vbYesNo, "Etat de la recherche") = vbYes Then
Exit Sub
End If
With Selection.Interior
Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
-----------------
Dans laquelle je colorie en jaune une cellule; si le choix ne convient pas, je veux la "décolorer"...
Et ça ne marche pas! J'ai pourtant fait une macro "à blanc" qui fonctionne...
Merci déjà! - HansVogelaarNov 07, 2022MVP
Essayez
Application.ScreenUpdating = True ActiveCell.Offset(0, -25).Activate Selection.Interior.Color = 5756927 If MsgBox("Ce nom correspond-t-il à votre recherche? Si non, cliquez sur Non pour continuer!", _ vbYesNo, "État de la recherche") = vbYes Then Exit Sub End If Selection.Interior.ColorIndex = xlColorIndexNone
- bernard_daniel_1950Nov 07, 2022Iron ContributorSimple, mais beau!
merci! - bernard_daniel_1950Nov 18, 2022Iron ContributorCela faisait longtemps...
Je souhaiterais, à partir d'une condition if (si = false) atteindre un point ultérieur de la macro.
Je suppose que c'est possible, mais je ne vois pas comment!
Merci! - HansVogelaarNov 18, 2022MVP
Une solution possible:
If condition = True ... ... End If ... ...
Une autre:
If condition = True ... ... Else ... ... End If
Ou bien
If condition = False Then GoTo EtapeSuivante ... ... EtapeSuivante: ... ...