IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Cercle d'une matrice


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2017
    Messages : 35
    Par défaut Cercle d'une matrice
    Bonjour ,
    J'espere que vous allez m'aider pour cette fonction
    Mon probleme ?
    j'ai une matrice ( qui est une MatCable la premiere colonne ( rayon) , la deuxieme colonne (coordonnée x) , la 3 eme colonne ( coordonnée y)
    je voudrais dessiner un cercle de cette matrice , et merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function insertCableS( MatCable As Variant) As Shape
     
    Dim rC, xC, yC As Double
     
    Dim l, c As Integer: l = UBound(MatCable, 1): c = UBound(MatCable, 2)
     
     
     
    For i = 1 To l: rC = MatCable(i, 1): xC = MatCable(i, 2): yC = MatCable(i, 3)
    Set insertCableS = ActiveSheet.Shapes.AddShape(msoShapeOval, xC, yC, rC, rC)
    Next
    End Function

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Voilà le travail fait à ta place.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub TraceCable()
    Dim Shp As Shape
    Dim i As Long
    Dim Tb
     
    Tb = Worksheets("Feuil1").Range("A2:C7")    ' à adapter
    For i = 1 To UBound(Tb, 1)
        Set Shp = Worksheets("Feuil1").Shapes.AddShape(msoShapeOval, Tb(i, 2), Tb(i, 3), Tb(i, 1), Tb(i, 1))
        With Shp
            .Name = "Cable" & i
            .Fill.Visible = msoFalse
            '.....
        End With
        Set Shp=Nothing
    Next i
    End Sub

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Attention à la façon dont tu poses ta question sur le forum. Tu obtiendras plus efficacement des réponses si tu te tiens aux quelques règles du forum.
    http://club.developpez.com/regles/#LIV-H
    http://club.developpez.com/regles/#LIV-N

  4. #4
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2017
    Messages : 35
    Par défaut
    Merci infiniment , y a t il une possibilité de ramener ( diametre , coordonée du cable) à partir de la matrice non pas de la feuille

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Basiquement oui
    Retrousse les manches

  6. #6
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2017
    Messages : 35
    Par défaut
    Le Nom du cercle et son 'i' , n'apparait pas est ce Normal?

  7. #7
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2017
    Messages : 35
    Par défaut coup de main pour matrice
    Bonjour,
    Je voudrais mettre un cercle de 0 ( pour la matrice cable) dans une matrice buse ,
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Public Function InsertionCables(matBuse As Variant, MatCable As Variant) As Variant
     
    lb = UBound(matBuse, 1): cb = UBound(matBuse, 2):  lc = UBound(MatCable, 1): cc = UBound(MatCable, 2)
     
    Dim matBuse2 As Variant: matBuse2 = matBuse
     
    'ReDim matBuse(1 To lb, 1 To cb) As Integer:   ReDim MatCable(1 To lc, 1 To cc) As Integer
    check = "no"
    For i = 1 To lb: For j = 1 To cb
     
            If i - Val(lc / 2) > 0 And j - Val(lc / 2) > 0 And i + Val(lc / 2) < lb And j + Val(lc / 2) < lb Then
     
                      For k = 1 To Val(lc / 2): For l = 1 To Val(lc / 2)
     
                      If matBuse(i, j) = 1 And matBuse(i - k, j - l) = 1 And matBuse(i + k, j + l) = 1 And matBuse(i - k, j + l) = 1 And matBuse(i + k, j - l) = 1 Then check = "ok" Else: check = "no"
     
                      If check <> "ok" Then Exit For: Exit For
     
                     Next l: Next k
             End If
     
    'MsgBox check
    If check = "ok" Then
     
           For k = 1 To Val(lc / 2): For l = 1 To Val(lc / 2)
           If i - Val(lc / 2) > 0 And j - Val(lc / 2) > 0 And i + Val(lc / 2) < lb And j + Val(lc / 2) < lb Then
           matBuse2(i - k, j - l) = 0: matBuse2(i + k, j + l) = 0: matBuse2(i - k, j + l) = 0: matBuse2(i + k, j - l) = 0:
           End If
           Next l: Next k
     
    Exit For: Exit For
     
    End If
     
    Next j: Next i
     InsertionCables = matBuse2
    End Function
    et voici pour affSub test_insertion()
    Dim MC, MB, MB2 As Variant

    MC = mat_cercle(mat_Carré(5, 1))
    MB = mat_cercle(mat_Carré(30, 1))



    MB2 = InsertionCables(MB, MC)

    affichResult (MB2)

    End Sub
    icher
    et le resultat le voici
    Nom : capturet.PNG
Affichages : 128
Taille : 16,9 Ko

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2012, 20h02
  2. comment parcourir une matrice en cercle ?
    Par info3licen dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 09/05/2010, 18h38
  3. [JTable] remplir avec une matrice
    Par ybdz dans le forum Composants
    Réponses: 3
    Dernier message: 08/12/2004, 21h03
  4. Recherche des coefficients d'une matrice 3x3
    Par colorid dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 25/11/2004, 16h52
  5. Déclarer une matrice
    Par joy dans le forum C
    Réponses: 7
    Dernier message: 09/12/2002, 00h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo