VBA : Offset uniquement par rapport à Cells() ?
Résolu
AnthonyS
-
AnthonyS -
AnthonyS -
Bonjour,
J'ai une petite question qui peut-être assez facile mais à laquelle je n'arrive à répondre et je n'ai pas trouvé de cas similaire sur le net.
Il s'agit d'un soucis de VBA.
J'ai réussi à créer ma macro quasiment complète, cependant, je n'arrive pas à la finaliser à cause d'un petit soucis.
Voici le code :
Je suis novice en VBA, et c'est probablement très mal écris mais la n'est pas la question.
Quand dans la 1ère des deux lignes, j'écris le développement de jour Cells(nbexpert+6,jouractu.Offset) ça passe, mais si j'écris jour.Offset ça n'accepte pas.
Deuxièmement, je pense qu'à cause de la sélection, s'il y a plusieurs "A" dans les colonnes, ça ne prends plus en compte les autres, uniquement le 1er. (Donc la solution serait plutôt de savoir comment récupérer la valeur de la cellule au bout du tableau sans faire de select) (J'ai essayé une V/HLookup mais j'ai pas réussi...)
Avez-vous une solution pour ce soucis la ?
Je vous remercie d'avance.
Cordialement,
Anthony
J'ai une petite question qui peut-être assez facile mais à laquelle je n'arrive à répondre et je n'ai pas trouvé de cas similaire sur le net.
Il s'agit d'un soucis de VBA.
J'ai réussi à créer ma macro quasiment complète, cependant, je n'arrive pas à la finaliser à cause d'un petit soucis.
Voici le code :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False
Dim expert As String
Dim nbexpert As Integer
If Not Application.Intersect(Target, Range("B6:NC36")) Is Nothing Then
nbbexpert = Cells(77, 1)
For nbexpert = 1 To nbbexpert
jouractu = ActiveCell.Column
jour = Cells(nbexpert + 6, jouractu)
If jour = "A" Then
jour.Offset(0, 368 - jouractu).Select 'Ces deux lignes la sont la cause de mes soucis
Visa = Selection.Value 'Ces deux lignes la sont la cause de mes soucis
MsgBox (Visa & " est absent.")
End If
Next
End If
End Sub
Je suis novice en VBA, et c'est probablement très mal écris mais la n'est pas la question.
Quand dans la 1ère des deux lignes, j'écris le développement de jour Cells(nbexpert+6,jouractu.Offset) ça passe, mais si j'écris jour.Offset ça n'accepte pas.
Deuxièmement, je pense qu'à cause de la sélection, s'il y a plusieurs "A" dans les colonnes, ça ne prends plus en compte les autres, uniquement le 1er. (Donc la solution serait plutôt de savoir comment récupérer la valeur de la cellule au bout du tableau sans faire de select) (J'ai essayé une V/HLookup mais j'ai pas réussi...)
Avez-vous une solution pour ce soucis la ?
Je vous remercie d'avance.
Cordialement,
Anthony
C'est magnifique tout fonctionne !
Du coup j'ai une autre question si j'ose. En fait, maintenant, comme tu peux t'en douter, tout se fait sur X MsgBox. Penses-tu qu'il y aurait un moyen (simple) de les faires s'afficher à la suite sur une même MsgBox ?
J'ai pensé à copier les sélections dans une zone tampon puis de reprendre cette zone tampon pour la MsgBox puis ensuite de vider son contenu pour que cela se fasse à chaque fois mais il y a probablement une méthode plus simple...
Ne te tracasse surtout pas trop pour cela.
ça fonctionne et c'est le principal pour moi ! :)
Excellente journée !
P.S. j'attends ta réponse avant d'afficher mon problème comme résolu mais du coup si tu ne trouve pas, tu peux l'afficher comme résolu si tu en as la possibilité. Sinon j'attends lundi pour l'afficher comme résolu sans aucunes réponses d'ici la. :)
Merci encore et bonne journée
dim zaza as string
dans la boucle
zaza= zaza & " " & visa
et aorès sortie de boucle
msgbox zaza & " sont absents."
Je te remercie encore et encore ! :)
Du coup je te re-dérange pour te demander (et je pense que ce sera la dernière fois que je vais t'embêter) si tu aurais une autre solution magique pour définir si y a eu qu'un seul "A" dans la colonne ou pas ?
A savoir que de nouveau je peux me compliquer la vie mais que si tu as un code "simple" ce serait avec plaisir :)
Je te remercie encore et te souhaite une merveilleuse fin de journée ! :)
Voici le code si cela peut intéresser quelqu'un :)