Salut les Kracks,
Pourriez-vous m'indiquer la syntaxe pour faire un offset (dans une boucle) avec une variable prédéfinie (Habituellement Activecell mais là, il me bloque!):
D'avance merciCode:strDestinataire = strDestinataire.Offset(1, 0).Value
Version imprimable
Salut les Kracks,
Pourriez-vous m'indiquer la syntaxe pour faire un offset (dans une boucle) avec une variable prédéfinie (Habituellement Activecell mais là, il me bloque!):
D'avance merciCode:strDestinataire = strDestinataire.Offset(1, 0).Value
Bonjour,
StrDestinataire étant probablement une variable de type String, elle ne peut etre utilisée comme si elle était de type Range (A moins que le préfixe Str ne signifie pas String :calim2:)
Ci dessous un code qui boucle sur 10 lignes en partant de la cellule déclarée en Rg
Code:
1
2
3
4
5
6
7
8
9
10 Dim Rg As Range Dim i As Long Set Rg = Range("B5") For i = 0 To 10 MsgBox Rg.Offset(i, 0).Value Next i
Bonjour
Exemple
bon courageCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim Cellule As Range Dim compA As Long Set Cellule = Range("A1") par exemple Pour les colonnes For CompA = 1 To 20 par exemple Cellule.Offset(0, CompA).Value = "X" Next compA Pour les Lignes For CompA = 1 To 20 par exemple Cellule.Offset(CompA, 0).Value = "X" Next compA
Edit: Bonjour Jérôme, je n'avais pas vu ta réponse avant d'envoyer:ccool:
Merci à vous deux,
Effectivement, elle était mal déclarée!:oops:
Comme je l'aperçois sur vos deux codes, j'ai oublié de faire un SET au préalable pour pouvoir ensuite utiliser OFFSET...:traine:
Au plaisir!
Salut les Kracks,
Ci-dessous un code qui envoi automatiquement par outlook les messages(C6:C40) et adresses (F6:F40) situées dans des cellules excel avec pour seul contrainte la validation du message de Sécurité (d'ailleurs si vous avez un code pour l'enlever...je prends:salive:).
Mon problème vient de la boucle peut-être?
D'avance...:merci:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Sub ContentCellxlsbyOutlook() Dim OutApp As Object Dim OutMail As Object Dim strCCDestinataire, strSubject, strTextBody As variant Dim strDestinataire As Range strCCDestinataire = "boss@msn.com;copain2@hotmail.com" 'toujours les mêmes destinataires Set strDestinataire = Range("F5") 'F5 = entête de la colonne comprenant les celulles avec les addresses emails 'Temps que la cellule en dessous du destinataire n'est pas vide exécuter... Do While Not (IsEmpty(strDestinataire)) strDestinataire = strDestinataire.Offset(1, 0) 'F5 devient F6 strSubject = "Mon sujet - " & strDestinataire.Offset(0, -3).Value 'en C6 numéro à ajouter dans le sujet strTextBody = "Dear Sir or Madam," _vbcrlf 'voir si ça marche car texte long à mettre sur plusieurs lignes & "blablabla"_vbcrlf & "blablabla" Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = strDestinataire .CC = strCCDestinataire .BCC = "" 'vide .Subject = strSubject .Body = strTextBody .Display .Send End With On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing Loop End Sub
re,
Tu pourrais peut etre mettre l'instanciation de la variable OutApp hors de la boucle DO WHILE.
Cela éviterait l'ouverture et la fermeture de l'application a chaque tour :)