Selectionner un RANGE
Bonjour
J'aimerais sélectionner la valeur de plusieurs cellules selon la quantité obtenu dans un range de d'autre cellules.
Exemple, si ma valeur dans le RANGE J2:J44 est egale ou plus petite que "0"
If my CELLS <=0 in range ("J2:J44") = true
cela me donne les valeurs de "B" et "C" de cette ligne
then return the value in colums "B" and "C" in that row
Je mets tous les valeurs ensemble dans une seule cellule
and concatenante them for one selection value.J'ai de la misère surtout a organiser le VBA ecrit. Je le formule verbalement, mais pour l’écrire c'est une aventure pour moi. Chacun son metier.
Merci a l'avance pour votre aide
Bonjour et bienvenue
Prépare un fichier avec une dizaine de lignes et la réponse attendue.
Amicalement
Nad
Bonjour Nad
Je joint un fichier.
J'ai mis quelque explication en rouge pour être le plus clair possible.
Le fichier contient déjà un VBA pour envoyer via e-mail le résultat obtenu.
Merci
Re
Je ne comprends pas les quantités inscrites en colonne M - Ça restera du manuel ou un calcul est à faire ?
Pour la colonne L :
Sub Prepare()
Application.ScreenUpdating = False
Dim c As Range
Dim derlg As Integer
derlg = Range("A65536").End(xlUp).Row
For Each c In Range("J2:J" & derlg)
If c <= 0 Then
c.Offset(0, 2) = c.Offset(0, -8) & " " & c.Offset(0, -7)
End If
Next c
End SubAmicalement
Nad
Bonjour Nad
Cela fonctionne parfaitement, j'ai rajoute une chose ou deux.
J'ai mis deux fonction VBA, J'aimerais imbriqueter celle que tu as fait dans la sélection du range avec la fonction pour envoyer un e-mail.
Je réussi a le faire, mais l'envoi dans le e-mail n'inclus pas ma sélection.
Est-ce que je peux solliciter ton aide encore.
Sub Mail_Selection()
'Working in 2000-2010
Dim Source As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim I As Long
Set Source = Nothing
On Error Resume Next
Set Source = Selection.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Source Is Nothing Then
MsgBox "The source is not a range or the sheet is protected, " & _
"please correct and try again.", vbOKOnly
Exit Sub
End If
'< 1 Or
If ActiveWindow.SelectedSheets.Count = Range("L2:L44").Select Or _ 'SELECTION du RANGE a cet endroit
Selection.Areas.Count > 1 Then
MsgBox "An Error occurred :" & vbNewLine & vbNewLine & _
"You have more than one sheet selected." & vbNewLine & _
"You only selected one cell." & vbNewLine & _
"You selected more than one area." & vbNewLine & vbNewLine & _
"Please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set wb = ActiveWorkbook
Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).Select
Application.CutCopyMode = False
End With
TempFilePath = Environ$("temp") & "\"
TempFileName = "Selection of " & wb.Name & " " _
& Format(Now, "dd-mmm-yy h-mm-ss")
If Val(Application.Version) < 12 Then
'You use Excel 2000-2003
FileExtStr = ".xls": FileFormatNum = -4143
Else
'You use Excel 2007-2010
FileExtStr = ".xlsx": FileFormatNum = 51
End If
With Dest
.SaveAs TempFilePath & TempFileName & FileExtStr, _
FileFormat:=FileFormatNum
On Error Resume Next
For I = 1 To 3
.SendMail "NCSVTControlCenter@campus.mcgill.ca", _
"Sanyo Lamps to be order for inventory"
If Err.Number = 0 Then Exit For
Next I
On Error GoTo 0
.Close SaveChanges:=False
End With
'Delete the file you have send
Kill TempFilePath & TempFileName & FileExtStr
With Application
' ActiveSheet.Range("L2:L44").ClearContents
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Sub Prepare()
Application.ScreenUpdating = False
Dim c As Range
Dim derlg As Integer
ActiveSheet.Range("L2:L44").ClearContents
derlg = Range("A65536").End(xlUp).Row
For Each c In Range("J2:J" & derlg)
If c <= 0 Then
c.Offset(0, 2) = c.Offset(0, -8) & " / " & c.Offset(0, -7) & " / " & c.Offset(0, -1)
End If
Next c
End SubMerci
Re
Je ne suis pas assez calée pour modifier ton code. Mais quelqu'un d'autre va surement prendre la main.
Amicalement
Nad
Bonsoir
Bien que je sois loin de tout comprendre surtout cette partie
If ActiveWindow.SelectedSheets.Count = Range("L2:L44").Select Or _ 'SELECTION du RANGE a cet endroit
Selection.Areas.Count > 1 ThenPour que le résultat de la macro de Nad soit dans le mail il faut d'abord l'exécuter (la macro
Sub Mail_Selection()
'Working in 2000-2010
Dim Source As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim I As Long
Prepare
Set Source = Nothing
'
' Reste du code
'Bonjour
Banzaï, heureusement que tu précises que c'est la macro qu'il faut exécuter !!
Amicalement
Nad