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 :

Manipuler les adresse des cellules en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2018
    Messages : 1
    Points : 4
    Points
    4
    Par défaut Manipuler les adresse des cellules en VBA
    Bonjour ,

    Je débute en VBA et je cherche a retrouver des valeurs non nulle dans une plage de données. lorsque la valeur est trouvé je voudrais obtenir les deux première case de cette ligne sur une nouvelle feuille sur deux colonnes la case en question sur une troisième et les deux première cases de la colonnes de la case rechercher sur deux autre colonnes.

    Par exemple si mes valeurs sont en E26 R89 et Z9 sur la feuille 1 je voudrais obtenir un tableau sur la feuille 2 qui ressemblerait a ça :

    A B C D E
    1 A26 B26 E26 E1 E2
    2 A89 B89 R89 R1 R2
    3 A9 B9 Z9 Z1 Z2
    Pour l'instant j'arrive a récupérer les valeurs (ou les adresses) dans une nouvelle feuille mais je n'arrive pas a mettre les 4 autre colonnes.

    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
    Option Explicit
     
        Sub tests_selection()
     
            Dim SrcWs As Worksheet
     
            Set SrcWs = Worksheets("feuil1")
     
            Dim FoundAddresses As New Collection
     
            Dim iCell As Range
     
            For Each iCell In SrcWs.Range("A1:AAU723")
     
                If iCell.Value <> 0 Then
     
                    FoundAddresses.Add iCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
                End If
     
            Next iCell
     
            Dim ResultWs As Worksheet
     
            Set ResultWs = Worksheets("result")
            Dim i As Long
     
            For i = 1 To FoundAddresses.Count 'output all addresses from the collection
     
                ResultWs.Cells(i, 1).Value = FoundAddresses(i)
     
            Next i
     
        End Sub

  2. #2
    Membre du Club Avatar de zipbox
    Homme Profil pro
    Excel VBA
    Inscrit en
    Juillet 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Excel VBA

    Informations forums :
    Inscription : Juillet 2004
    Messages : 49
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    voici un bout de code, à adapter . . .

    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
     
    Option Explicit
     
    Sub cherche_A1_AAU723()
      '
      Const f1 As String = "feuil1"
      Const f2 As String = "feuil2"
      '
      Dim iCell As Range
      '
      Dim i As Long, r As String
      '
      i = 0
      '
      For Each iCell In Range("A1:AAU723")
        '
        If (iCell.Value <> "") Then
          '
          i = i + 1
          r = iCell.Address
          '
          Sheets(f2).Cells(i, 1).Value = "A" & Mid$(r, InStrRev(r, "$") + 1)
          Sheets(f2).Cells(i, 2).Value = "B" & Mid$(r, InStrRev(r, "$") + 1)
          Sheets(f2).Cells(i, 3).Value = Mid$(Left$(r, InStrRev(r, "$") - 1), 2) & Mid$(r, InStrRev(r, "$") + 1)
          Sheets(f2).Cells(i, 4).Value = Mid$(Left$(r, InStrRev(r, "$") - 1), 2) & "1"
          Sheets(f2).Cells(i, 5).Value = Mid$(Left$(r, InStrRev(r, "$") - 1), 2) & "2"
          '
          Sheets(f2).Cells(i, 7).Value = r
          '
        End If
        '
      Next iCell
      '
      MsgBox " nb : " & i
      '
    End Sub

  3. #3
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 435
    Points
    1 435
    Par défaut
    Bonjour,
    je voudrais obtenir les deux première case de cette ligne
    case1= cells(Ligne,1)
    case2= cells(Ligne,2)

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/03/2015, 20h14
  2. [XL-2010] Utiliser les noms des cellules avec VBA
    Par laguernette dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/08/2013, 23h02
  3. Réponses: 3
    Dernier message: 18/04/2008, 17h20
  4. [VBA-E]Extraire les infos des cellules
    Par boosty dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/04/2006, 09h46

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